更多互聯(lián)網(wǎng)新鮮資訊、工作奇淫技巧關(guān)注原創(chuàng)【飛魚在浪嶼】(日更新)
SQL語句是代碼,可以編寫,對其進(jìn)行版本控制,對其進(jìn)行注釋并使用文件保存運(yùn)行它。如果在Python程序中以字符串形式編寫SQL代碼不會(huì)使你輕松在數(shù)據(jù)庫GUI工具或CLI工具(如psql)中重用SQL語句。而使用aiosql(地址:https://github.com/nackjicholson/aiosql),可以將SQL語句組織為.sql文件,將它們作為加載到python應(yīng)用程序中,SQL還是以文件形式保存。
aiosql適用于的場景有:
- 你認(rèn)為編寫SQL是應(yīng)用程序的重要組成部分,希望以文件保存。
- 不想用與Python代碼混合編寫SQL。
- 沒有使用像SQLAlchemy或Django這樣的ORM,也不需要。
- 希望能夠在其他上下文中重用您的SQL。將其加載到psql或其他數(shù)據(jù)庫工具中。
安裝
pip install aiosql
或者使用poetry管理工具:
poetry add aiosql
使用方法
假設(shè)您有一個(gè)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")
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。