sanicdb簡介
SanicDB 是爲 Sanic 方便操作 MySQL 而開發的工具,是對 aiomysql.Pool 的輕量級封裝。
這是一個開源的小工具,使用異步io,開箱即用。
使用過Sanic框架的應該會知道,Sanic框架使用的是異步函數,在異步函數中使用同步的功能可能會導致應用阻塞。
例如,你在Sanic的接口函數中寫了一段大量寫入數據的操作,寫入數據是需要時間的,而等待寫入完成的這段時間中,Sanic就會進入阻塞狀態,整個Sanic框架的接口都無法進行響應。
所以,在Sanic框架中,任何需要等待的操作都需要使用異步操作。
項目地址:https://github.com/veelion/sanicdb
源碼很少,尊重作者,這裏就不貼出來了。感謝造輪子的兄弟姐妹們。
使用SanicDB
示例代碼:
# coding:utf-8
from sanic import Sanic
from sanic import response
# 導入
from sanicdb import SanicDB
app = Sanic('test')
# 實例化SanicDB
db = SanicDB('localhost', 'databasename', 'username', 'password', sanic=app)
@app.route('/sanicdbTest')
async def sanicdbTest(request):
sql = 'select * from students where age=18'
data = await app.db.query(sql)
return response.json(data)
if __name__ == '__main__':
app.run()