如何设置 Python 中的 SQL 查询超时?
在使用 python 进行 sql 查询时,有时需要限制查询执行时间以防止安全隐患。本文将介绍如何在使用 django orm、peewee、sqlalchemy 等 orm 框架;pymysql 等驱动程序库;以及 fastapi、flask、django 等应用程序框架;以及 uwsgi、gunicorn 等服务器时设置 sql 查询超时。
对于使用 uwsgi + fastapi + peewee + pymysql 等组合,可以通过设置 pymysql 连接超时参数来实现 sql 查询超时:
pymysql.connect( host="localhost", user="user", password="password", db="database", connection_timeout=60, # 连接超时时间(秒) read_timeout=60, # 读超时时间(秒) write_timeout=60, # 写超时时间(秒) )
通过设置这些参数,可以限制 sql 查询的执行时间。当查询超过指定的超时时间时,将抛出超时异常,终止查询。