Ivan艾凡 2023-03-27 04:18 采纳率: 0%
浏览 84

python flask sqlalchemy 生成数据表报错

python flask sqlalchemy 生成数据表报错 求指教

报错内容:


Traceback (most recent call last):
  File "G:\studyProject\flaskBlog\app\models.py", line 195, in <module>
    db.create_all()
  File "G:\studyProject\flaskBlog\venv\lib\site-packages\flask_sqlalchemy\extension.py", line 884, in create_all
    self._call_for_binds(bind_key, "create_all")
  File "G:\studyProject\flaskBlog\venv\lib\site-packages\flask_sqlalchemy\extension.py", line 855, in _call_for_binds
    engine = self.engines[key]
  File "G:\studyProject\flaskBlog\venv\lib\site-packages\flask_sqlalchemy\extension.py", line 636, in engines
    app = current_app._get_current_object()  # type: ignore[attr-defined]
  File "G:\studyProject\flaskBlog\venv\lib\site-packages\werkzeug\local.py", line 513, in _get_current_object
    raise RuntimeError(unbound_message) from None
RuntimeError: Working outside of application context.

This typically means that you attempted to use functionality that needed
the current application. To solve this, set up an application context
with app.app_context(). See the documentation for more information.
  • 写回答

3条回答 默认 最新

  • IT_service_mesh 2023-03-27 05:48
    关注

    参考GPT和自己的思路:根据 Traceback 内容,出现了一个“RuntimeError: Working outside of application context”的错误,这通常意味着你尝试使用需要当前应用程序的功能。为了解决这个问题,可以使用 Flask 提供的应用上下文(application context)。具体做法是,在调用 db.create_all() 前,加上下面的代码即可:

    with app.app_context():
        db.create_all()
    

    这样就可以在应用上下文环境中创建数据库了。另外,需要确保正确导入了 Flask 的 current_app 和 db 对象才能使用。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月27日