A simple mysql orm base on pymysql
Project description
SimpySql
一个数据库orm, 目前支持mysql, mongodb
mysql文档 , mongo文档 , cassandra文档
安装
pip install simpysqls-hks
初始化
你需要在你的项目根目录下创建一个.env文件,内容如下:
[default] #数据库配置名称(对应model.__database__)
DB_TYPE=mysql #数据库类型 mysql 或者 mongo
DB_HOST=127.0.0.1 #数据库IP
DB_PORT=3306 #端口
DB_NAME=test_db1 #库名
DB_USER=root #账号
DB_PASSWORD=123456 #密码
DB_CHARSET=utf8mb4 #数据库编码
LOG_DIR=/home/logs/python/ #开启日志, 日志路径: /home/logs/python/
[test_db2] #其他的库
DB_TYPE=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_NAME=test_db2
DB_USER=root
DB_PASSWORD=123456
DB_CHARSET=utf8mb4
#LOG_DIR=/home/logs/python/ #关闭日志
连接加固(跨 WAN / 跨机房,0.0.4+,全部可选)
以下 .env 键不配 = 行为与旧版完全一致(无超时、内置默认连接池);仅在连接异地/跨机房数据库时建议开启,避免链路抖动把调用线程无限挂死。
[cloud]
DB_TYPE=mysql
DB_HOST=...
DB_PORT=3306
DB_NAME=...
DB_USER=...
DB_PASSWORD=...
DB_CHARSET=utf8mb4
# —— 以下均可选 ——
DB_CONNECT_TIMEOUT=5 # pymysql connect_timeout(秒)
DB_READ_TIMEOUT=120 # pymysql read_timeout(秒);消灭无限挂死的关键
DB_WRITE_TIMEOUT=120 # pymysql write_timeout(秒)
DB_POOL_MAX=10 # PooledDB maxconnections
DB_POOL_MIN_CACHED=2 # PooledDB mincached
DB_POOL_MAX_CACHED=5 # PooledDB maxcached
DB_POOL_MAX_USAGE=1000 # PooledDB maxusage(到达即回收连接;默认 None=不回收)
DB_POOL_PING=1 # PooledDB ping(取连接时校验级别)
创建表model
创建数据库model 并继承simpysql.DBModel:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from simpysql.DBModel import DBModel
class ModelDemo(DBModel):
__basepath__ = '/home/project/' # .env 文件路径
#__database__ = 'default' # 库选择, 没有该属性,则默认default库
__tablename__ = 'lh_test' # table name
__create_time__ = 'create_time' # 自动添加创建时间字段create_time(精确到秒), 设置为None或者删除该属性,则不自动添加
__update_time__ = 'update_time' # 自动更新时间字段update_time(精确到秒), 设置为None或者删除该属性,则不自动更新
columns = [ # table columns
'id',
'name',
'token_name',
'status',
'create_time',
'update_time',
]
# 可以通过该方法设置自动添加时间字段的格式
# def fresh_timestamp(self):
# return datetime.datetime.now().strftime("%Y%m%d")
操作实例
ModelDemo.where('id', 4).select('id', 'name').take(5).get()
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
simpysqls_hks-0.0.4.tar.gz
(27.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file simpysqls_hks-0.0.4.tar.gz.
File metadata
- Download URL: simpysqls_hks-0.0.4.tar.gz
- Upload date:
- Size: 27.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c9c1f9e731ee749c024e540d1fe44cbb74e1da49125415aca864ead732a37e2
|
|
| MD5 |
9104004538ced99c7437ac005cd49bc6
|
|
| BLAKE2b-256 |
727dd767687cc56d7057d5ce70cc6cd1ff24b36102353c140abdcd73ebf34849
|
File details
Details for the file simpysqls_hks-0.0.4-py3-none-any.whl.
File metadata
- Download URL: simpysqls_hks-0.0.4-py3-none-any.whl
- Upload date:
- Size: 41.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f4e695597a1f5f2445bf61bf785bfc05b2965786b97325d718aa30d75c150d06
|
|
| MD5 |
2db3f0ef958254d426dd9db627f34f07
|
|
| BLAKE2b-256 |
b0abe6d83c53c36fc33037d4096f1aca5e8fcb161e4e26dc980f21bebdfdcbe0
|