Python Web-Sanic框架的正確用法——sanicdb

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()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章