directsql
一个简单的使用python操作mysql的工具,提供了一些类似sql语法的方法,最终拼接成sql。可以很好地处理一些常见场景,不依赖orm 的同时避免手写大量sql,只需要数据是字典类型即可。
源码地址:https://github.com/lishukan/directsql
安装
$ pip3 install directsql
导入
directsql 目前只提供三个外部类
__all__=["SqlGenerator","MysqlConnection","MysqlPool"]
导入方式
from directsql.sqlgenerator import SqlGenerator #该类用于生成sql语句
#下面是一个池化连接对象MysqlPool 和一个简单连接对象 MysqlConnection
from directsql.connector import MysqlConnection,MysqlPool
使用
1 创建连接
# 1. 传入有名参数
conn = MysqlConnection(host='127.0.0.1', port=3306, password='123456', database='test_base')
print(conn.database)
conn=MysqlPool(host='127.0.0.1', port=3306, password='123456', database='test_base')
# 也可使用 直接 参数字典
conn_args = {
'host': '127.0.0.1',
'port': 3306,
'password': '123456',
'database':'test_base',
}
conn = MysqlConnection(**conn_args)#单个连接
print(conn.database)
conn = MysqlPool(**conn_args) #池化连接对象
print(conn.database)
#2 直接使用 字符串
#以下字符串是常用的终端 连接命令
string_arg="mysql -uroot -h127.0.0.1 -P3306 -p123456 -Dtest_base"
conn = MysqlConnection(string_arg=string_arg)
print(conn.database)
conn = MysqlPool(string_arg=string_arg)
print(conn.database)
2 执行sql语句
事实上directsql 封装了 很多 语句。可以满足很大一部分日常使用场景。但是如果有复杂的语句,仍然需要调用原生的sql 执行。而且directsql 中很多封装好的方法是先拼接sql 再 调用该语句,所以这里还是先简单介绍下,directsql 如何执行原生sql。
无论是 MysqlConnection
类 还是 MysqlPool
类 都通过 execute_sql 方法 来执行sql。
例如 :
id | name | age |
---|---|---|
1 | 罗辑 | 28 |
2 | 庄颜 | 25 |
3 | 叶文洁 | 54 |
4 | 程心 | 25 |
5 | 云天明 | 27 |
conn = MysqlConnection(string_arg="mysql -uroot -h127.0.0.1 -P3306 -p123456 -Dtest")
result,count=conn.execute_sql("select * from test_table ")
print(result)
print(count)
>>> ((1, '罗辑', '28'), (2, '庄颜', '25'), (3