[英]Flask app getting error of "could not locate flask application. .....FLASK_APP environment variable" for Flask Migrate
我有一个文件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.
我首先尝试通过执行set FLASK_APP=app.py
然后再次运行flask db init
手动设置FLASK_APP
var,但这并没有解决问题。
flask
命令行参数需要知道在哪个模块中定位当前Flask
应用程序实例。
将FLASK_APP
设置为环境变量:
export FLASK_APP=db_table.py
在运行您的flask
命令行应用程序之前。
请参阅命令行界面文档:
要使 Flask 脚本工作,需要发现一个应用程序。 这是通过导出
FLASK_APP
环境变量来实现的。 它可以设置为导入路径或包含 Flask 应用程序的 Python 模块的文件名。
您还可以通过在同一命令行上设置每个命令来设置变量:
FLASK_APP=db_table.py flask db init
您可以参考此文档了解如何在 Flask 中设置环境变量。
Unix Bash(Linux、Mac 等):
$ export FLASK_APP=hello
$ flask run
Windows CMD:
> set FLASK_APP=hello
> flask run
Windows PowerShell:
> $env:FLASK_APP = "hello"
> flask run
如果您使用 DispatcherMiddleware (werkzeug.wsgi),可能会发生一些问题。 对于迁移时间,将返回对象从 app_dispatch 更改为没有 app_dispatch 的 app。
这种情况很少见,希望有人帮助...
在 VS 代码编辑器中,单击运行和调试。 Select Flask 调试器并键入您的文件名。 这对我有用,希望它也对你有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.