高效率的開源工具:在python操作簡潔的sql代碼(開源 sql)
更多互聯(lián)網(wǎng)新鮮資訊、工作奇淫技巧關注原創(chuàng)【飛魚在浪嶼】(日更新)
SQL語句是代碼,可以編寫,對其進行版本控制,對其進行注釋并使用文件保存運行它。如果在Python程序中以字符串形式編寫SQL代碼不會使你輕松在數(shù)據(jù)庫GUI工具或CLI工具(如psql)中重用SQL語句。而使用aiosql(地址:https://github.com/nackjicholson/aiosql),可以將SQL語句組織為.sql文件,將它們作為加載到python應用程序中,SQL還是以文件形式保存。
aiosql適用于的場景有:
- 你認為編寫SQL是應用程序的重要組成部分,希望以文件保存。
- 不想用與Python代碼混合編寫SQL。
- 沒有使用像SQLAlchemy或Django這樣的ORM,也不需要。
- 希望能夠在其他上下文中重用您的SQL。將其加載到psql或其他數(shù)據(jù)庫工具中。
安裝
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中的方法執(zhí)行?。?/p>
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")