Flask应用程序获取Flask Migrate的"找不到烧瓶应用程序..... FLASK_APP环境变量"的错误

Jsh*_*hee 2 python database-migration flask flask-sqlalchemy

我有一个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....
Run Code Online (Sandbox Code Playgroud)

当我尝试运行时:

flask db init
Run Code Online (Sandbox Code Playgroud)

我明白了:

错误:找不到Flask应用程序.您没有提供FLASK_APP环境变量.

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

我该如何解决这个问题?

谢谢

Mar*_*ers 7

flask命令行参数需要知道什么模块来定位当前Flask的应用实例.

设置FLASK_APP为环境变量:

export FLASK_APP=db_table.py
Run Code Online (Sandbox Code Playgroud)

在运行flask命令行应用程序之前.

请参阅命令行界面文档:

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

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

FLASK_APP=db_table.py flask db init
Run Code Online (Sandbox Code Playgroud)

  • 对于 Windows 为 `set FLASK_APP=db_table.py`,对于 powershell 为 `$env:FLASK_APP = "db_table.py"` (2认同)

小智 7

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

Unix Bash(Linux、Mac 等):

$ export FLASK_APP=hello
$ flask run
Run Code Online (Sandbox Code Playgroud)

Windows CMD:

> set FLASK_APP=hello
> flask run
Run Code Online (Sandbox Code Playgroud)

Windows PowerShell:

> $env:FLASK_APP = "hello"
> flask run
Run Code Online (Sandbox Code Playgroud)