对于 Flask Migrate,Flask 应用程序出现“找不到 Flask 应用程序。.....FLASK_APP 环境变量”错误

新手上路,请多包涵

我有一个文件 db_table.py 看起来像:

 from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:password@localhost/mydb'

db = SQLAlchemy(app)
migrate = Migrate(app, db)
.....db tables....

当我尝试运行时:

 flask db init

我得到:

 Error: Could not locate Flask application. You did not provide the FLASK_APP environment variable.

我首先尝试手动设置 FLASK_APP var,通过执行 set FLASK_APP=app.py 然后再次运行 flask db init ,但这并没有解决问题。

原文由 Jshee 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 845
2 个回答

flask 命令行参数需要知道在哪个模块中定位当前 Flask 应用程序实例。

FLASK_APP 设置为环境变量:

 export FLASK_APP=db_table.py

在运行您的 flask 命令行应用程序之前。

请参阅 命令行界面 文档

为了使 flask 脚本起作用,需要发现一个应用程序。这是通过导出 FLASK_APP 环境变量来实现的。它可以设置为导入路径或包含 Flask 应用程序的 Python 模块的文件名。

您还可以通过在同一命令行上设置 每个命令 来设置变量:

 FLASK_APP=db_table.py flask db init

原文由 Martijn Pieters 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以参考 此文档 了解如何在 Flask 中设置环境变量。

Unix Bash(Linux、Mac 等):

 $ export FLASK_APP=hello
$ flask run

窗口命令:

 > set FLASK_APP=hello
> flask run

Windows PowerShell:

 > $env:FLASK_APP = "hello"
> flask run

原文由 Mukheem Mohammed 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题