我有一个文件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变量,方法是执行set FLASK_APP=app.py,然后再次运行flask db init,但这并没有解决问题。
发布于 2017-01-04 00:53:03
flask命令行参数需要知道在哪个模块中定位当前的Flask应用程序实例。
将FLASK_APP设置为环境变量:
export FLASK_APP=db_table.py在运行flask命令行应用程序之前。
请参阅 documentation
要使flask脚本工作,需要发现应用程序。这是通过导出
FLASK_APP环境变量实现的。它可以设置为导入路径,也可以设置为包含Flask应用程序的Python模块的文件名。
您还可以通过在同一命令行上设置每个命令来设置该变量:
FLASK_APP=db_table.py flask db init发布于 2020-06-20 14:21:11
您可以参考this documentation来了解如何在Flask中设置环境变量。
Unix Bash (Linux、Mac等):
$ export FLASK_APP=hello
$ flask runWindows CMD:
> set FLASK_APP=hello
> flask runWindows PowerShell:
> $env:FLASK_APP = "hello"
> flask run发布于 2019-12-27 18:00:02
如果使用DispatcherMiddleware (werkzeug.wsgi),可能会出现一些问题。迁移时间将返回对象从app_dispatch改为不带app_dispatch的app。
这是一种罕见的情况,我希望有人能帮上忙。
https://stackoverflow.com/questions/41448088
复制相似问题