Flask的钩子函数与peewee.InterfaceError: (0, '')

简介: Flask的钩子函数与peewee.InterfaceError: (0, '')

问题

使用flask搭了一个服务,用到了peewee模块,运行时间长了就报错

peewee.InterfaceError: (0, '')

百度上一搜,发现有自己的文章


peewee: OperationalError: (2006, ‘MySQL server has gone away’)


那个时候,处理的是peewee2版本的问题,如今又在处理peewee3的问题,真是问题多多


解决

查看peewee的issue,看到一个回到,给出两个方案

1、使用flask-peewee 模块

2、使用flask的钩子函数


尝试使用方案2:

request来的时候打开数据库连接,response返回的时候关闭数据库连接


根据文档给出的代码

from flask import Flask
from peewee import *
database = SqliteDatabase('my_app.db')
app = Flask(__name__)
# This hook ensures that a connection is opened to handle any queries
# generated by the request.
@app.before_request
def _db_connect():
    database.connect()
# This hook ensures that the connection is closed when we've finished
# processing the request.
@app.teardown_request
def _db_close(exc):
    if not database.is_closed():
        database.close()

参考:


https://github.com/coleifer/peewee/issues/1546

http://docs.peewee-orm.com/en/latest/peewee/database.html#flask

http://docs.peewee-orm.com/en/latest/peewee/database.html#error-2006-mysql-server-has-gone-away


相关文章
|
Python
在Python云函数中使用Flask时
在Python云函数中使用Flask时
152 6
|
前端开发 文件存储 Python
【已解决】Flask当中render_template函数使用过程当中css文件无法正常渲染
【已解决】Flask当中render_template函数使用过程当中css文件无法正常渲染
|
JSON 数据处理 数据库
Flask视图函数与响应处理的艺术
【4月更文挑战第15天】本文探讨了Flask框架中视图函数和响应处理的原理与实践。视图函数通过`@app.route()`装饰器与URL关联,处理用户请求并返回响应。示例展示了如何从URL或请求对象获取参数,以及执行不同操作后返回响应。Flask支持字符串、元组和响应对象等多种响应类型。最佳实践包括保持视图函数简洁、使用模板引擎、处理异常和设置正确状态码。掌握这些技能能提升Web应用的用户体验和开发效率。
|
数据库 开发者 Python
flask中的abort函数和自定义异常
flask中的abort函数和自定义异常
267 0
|
存储 数据安全/隐私保护 Python
Flask入门flask-script 蓝本 钩子函数(3)
flask入门(三) 1 flask-script扩展库 概念: 是一个flask终端运行的解析器 ,因为项目完成以后,代码改动会有风险,所以借助终端完成不同启动项的配置 安装 pip3 install fl...
|
数据库连接 Python
高频面试题之Flask钩子函数的理解
问到Flask钩子函数目的还是为了询问Flask详细的生命周期!
|
JSON 前端开发 数据格式
Flask学习与项目实战2:url与视图函数映射、视图转url
访问book/list的url的时候发现是不可以访问的,因为我们返回额不是字典、元组等等,现在返回的是一个列表。 TypeError: The view function did not return a valid response. The return type must be a string, dict, tuple, Response instance, or WSGI callable, but it was a list.
Flask学习与项目实战2:url与视图函数映射、视图转url
|
JSON 前端开发 数据格式
小白学Flask第六天| abort函数、自定义错误方法、视图函数的返回值
小白学Flask第六天| abort函数、自定义错误方法、视图函数的返回值
356 0
小白学Flask第六天| abort函数、自定义错误方法、视图函数的返回值
|
Python
小白学Flask第三天| 今天把视图函数的路由给讲清楚!
小白学Flask第三天| 今天把视图函数的路由给讲清楚!
295 0
小白学Flask第三天| 今天把视图函数的路由给讲清楚!