【问题标题】:Peewee Operational Error in Flask appFlask 应用程序中的 Peewee 操作错误
【发布时间】:2017-08-15 07:28:23
【问题描述】:

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

peewee.OperationalError: Connection already open

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

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

我将其称为app.py models.initialize()

if __name__ == '__main__':
    models.initialize()
    app.run(debug=True, port=8000, host='0.0.0.0')

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

【问题讨论】:

    标签: python-3.x flask flask-peewee


    【解决方案1】:

    不知何故,连接似乎被泄露了。您可以使用get_conn() 代替connect(),这样可以确保连接不会打开两次。

    【讨论】:

      猜你喜欢
      • 2017-02-16
      • 2021-05-11
      • 2016-05-16
      • 1970-01-01
      • 2013-08-12
      • 2023-03-09
      • 2020-02-20
      • 2016-08-28
      • 1970-01-01
      相关资源
      最近更新 更多