Python 实现的数据库工具 Saiorm

aiorm是一款简单易用的数据库工具,支持链式调用,学习成本极低。

支持 MySQL PostgreSQL 和 SQL Server.分别使用 pymysql pymssql psycopg2  来支持不同类型的数据库,具体 python 以这几个包为准,开发环境为python3.6.

方法

insert, select, update, delete, execute, executemany, increase, decrease 方法应在链式调用的最后执行,对数据库的操作会立即生效.

last_sql方法可返回最后执行的语句

get_fields_name方法可获取所有字段名

where方法可接受字典或字符串类型,IN 支持字符串或字符串组成的元组或列表.

selectget 方法只返回数据

update,delete,execute 等方法返回字典,包括:lastrowid, rowcount, rownumber, sql.

各种 join 请使用字符串参数,配合使用的 where 也用字符串参数.

注意

saiorm 不会转换 WHERE 中原生函数的参数和IN的参数,以及其他条件里的参数,如果条件需要使用用户传递进来的参数,请务必检查,以避免注入漏洞.

可以通过继承 saiorm.base.BaseDB 实现使用相同的 API 支持其他类型的数据库,可以参考siaorm.PostgreSQL.ChainDB.

如果要使用原生函数,请在参数前添加前缀 `,如果需要向原生函数传参,请使用元组或列表,使用 ? 作为参数的占位符,实际参数在后面传递,或者直接拼接字符串.

SQL Server 依赖的 pymssql 不会返回执行的语句,如果需要,必须在调用 connect 方法时手动设置return_sql=True ,让 saiorm用格式化查询语句的方式生成,以提高性能.需要在 调用 table 方法时传入primary_key,以实现对 LIMIT 的支持.

用法

初始化 MySQL:

初始化 PostgreSQL:

初始化 SQL Server:

下面的用法中转换的 SQL 都是 MySQL 风格的,和 PostgreSQL 以及 SQL Server 可能有些不同,特别是 LIMIT.

查询:


 

select 和 get 方法可限制字段名,默认返回所有字段.

更新:

UPDATExxxSETc=ABS(2),d=ABS(3),e='2'WHEREaIN(1,2,3)ANDb=ABS(2) ;

插入:

删除:

猜你喜欢

转载自blog.csdn.net/qq_40925239/article/details/88778327