Python 3.x 烧瓶应用程序中的Peewee操作错误

Python 3.x 烧瓶应用程序中的Peewee操作错误,python-3.x,flask,flask-peewee,Python 3.x,Flask,Flask Peewee,我正在使用flaskpython框架和Sqlite作为数据库编写一个简单的社交媒体应用程序。但是在运行程序之后,它显示以下错误。我有点困惑是什么导致了这个错误 peewee.OperationalError:连接已打开 我的计划是创建一个登录视图,这样用户就可以输入他们的电子邮件,并通过passoword登录。到目前为止,我已经创建了一个用于登录的视图,它将用户重定向回索引页面。上面的错误表明我没有关闭数据库。但是,我为连接和关闭数据库而编写的两个函数(在models.py中)如下所示: def

我正在使用flaskpython框架和Sqlite作为数据库编写一个简单的社交媒体应用程序。但是在运行程序之后,它显示以下错误。我有点困惑是什么导致了这个错误

peewee.OperationalError:连接已打开

我的计划是创建一个登录视图,这样用户就可以输入他们的电子邮件,并通过passoword登录。到目前为止,我已经创建了一个用于登录的视图,它将用户重定向回索引页面。上面的错误表明我没有关闭数据库。但是,我为连接和关闭数据库而编写的两个函数(在
models.py
中)如下所示:

def initialize():
    DATABASE.connect()
    DATABASE.create_tables([User], safe=True)
    DATABASE.close()
我通过
models.initialize()

因此,
app.py
具有以下函数装饰器方法:

@app.before_request
def before_request():
    """Connect to the database before each request"""
    g.db = models.DATABASE
    g.db.connect()


@app.after_request
def after_request(response):
    """Close the database after each request"""
    g.db.close()
    return response

不知何故,这似乎是一个连接正在泄漏。您可以使用
get_conn()
而不是
connect()
,这将确保连接不会被打开两次。

不知何故,连接似乎正在泄漏。您可以使用
get\u conn()
而不是
connect()
,这将确保连接不会被打开两次

@app.before_request
def before_request():
    """Connect to the database before each request"""
    g.db = models.DATABASE
    g.db.connect()


@app.after_request
def after_request(response):
    """Close the database after each request"""
    g.db.close()
    return response