高效率的开源工具:在python操作简洁的sql代码(开源 sql)
更多互联网新鲜资讯、工作奇淫技巧关注原创【飞鱼在浪屿】(日更新)
SQL语句是代码,可以编写,对其进行版本控制,对其进行注释并使用文件保存运行它。如果在Python程序中以字符串形式编写SQL代码不会使你轻松在数据库GUI工具或CLI工具(如psql)中重用SQL语句。而使用aiosql(地址:https://github.com/nackjicholson/aiosql),可以将SQL语句组织为.sql文件,将它们作为加载到python应用程序中,SQL还是以文件形式保存。
aiosql适用于的场景有:
- 你认为编写SQL是应用程序的重要组成部分,希望以文件保存。
- 不想用与Python代码混合编写SQL。
- 没有使用像SQLAlchemy或Django这样的ORM,也不需要。
- 希望能够在其他上下文中重用您的SQL。将其加载到psql或其他数据库工具中。
安装
pip install aiosql
或者使用poetry管理工具:
poetry add aiosql
使用方法
假设您有一个SQL文件,如下所示: users.sql
-- name: get-all-users-- Get all user recordsselect userid, username, firstname, lastname from users;-- name: get-user-by-username^-- Get user with the given username field.select userid, username, firstname, lastname from users where username = :username;
使用aiosql加载此文件,然后在文件中编写SQL并从python中的方法执行!:
import aiosqlimport sqlite3conn = sqlite3.connect("myapp.db")queries = aiosql.from_path("users.sql", "sqlite3")users = queries.get_all_users(conn)# >>> [(1, "nackjicholson", "William", "Vaughn"), (2, "johndoe", "John", "Doe"), ...]users = queries.get_user_by_username(conn, username="nackjicholson")# >>> (1, "nackjicholson", "William", "Vaughn")