繁体   English   中英

Flask 应用程序出现“找不到 flask 应用程序。.....FLASK_APP 环境变量”错误 Flask 迁移

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM