在使用 orm(對象關系映射器)或驅動庫時,確保 sql 查詢在指定時間范圍內完成非常重要。為了防止可能的安全漏洞,需要對查詢設置時間上限。
實現這一目的的優雅解決方案是使用以下 pymysql 參數:
- “connection_timeout”: 連接建立的超時時間(以秒為單位)。
- “read_timeout”: 從連接讀取數據的超時時間(以秒為單位)。
- “write_timeout”: 向連接寫入數據的超時時間(以秒為單位)。
例如,要在 uvicorn + fastapi + peewee + pymysql 環境中將 sql 查詢超時設置為 60 秒,可以修改連接參數:
立即學習“Python免費學習筆記(深入)”;
from peewee import MySQLDatabase db = MySQLDatabase(...) db.connect( connection_timeout=60, read_timeout=60, write_timeout=60, )
設置這些參數后,任何 sql 查詢都將受到指定超時時間的限制。超過此時間限制的查詢將引發異常。
這種方法既優雅又有效地實現了 sql 查詢超時,而無需修改 mysql 服務器設置。
以上就是如何在 python 的 uvicorn + fastapi + peewee + py
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦