启动 Flask 应用程序时出错,错误为“找不到 Flask 应用程序”

Duc*_*e19 12 python flask

我是Flask 的新手。要启动我做的烧瓶应用程序,python -m flask run但我反复收到错误

无法在模块“app”中找到 Flask 应用程序或工厂。使用“FLASK_APP=app:name 指定一个。

virtualenv在 Windows 10 机器上使用

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return "Hello, World!"

if __name__ == '__main__':
    app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)

我希望 Web 服务器能够启动并能够导航到本地页面并查看“Hello, World!”

Nat*_*but 11

而不仅仅是“烧瓶”使用FLASK_APP=theflaskapp.py,就像马可建议的那样:

 env FLASK_APP=theflaskapp.py python -m flask run
Run Code Online (Sandbox Code Playgroud)

这应该修复它,如果没有,请确保您正在执行命令以在与其相同的目录中运行脚本。您还应该通过运行“python theflaskapp.py”(仍然与flask应用程序在同一目录中)来检查问题是否在flask中,并查看它是否有效。


Ale*_*sov 6

您需要指定要使用的文件。尝试这个。

对于 Windows:

set FLASK_APP=app.py
python -m flask run
Run Code Online (Sandbox Code Playgroud)

对于 Mac 操作系统和 Linux:

export FLASK_APP=app.py
python -m flask run
Run Code Online (Sandbox Code Playgroud)


Oma*_*gdy 5

重现问题并修复它

您好,问题已复现,错误代码如下:

错误:无法在模块“src.app”中找到 Flask 应用程序或工厂。使用 "FLASK_APP=src.app:name 指定一个。

重现错误的步骤:

  1. 创建一个名为app.py的文件
  2. 在 app.py 里面放这个代码:
from flask import Flask

def create_app():
    app = Flask("abc")

    @app.route('/')
    def hello_world():
        return 'Hello, World!'
Run Code Online (Sandbox Code Playgroud)

或者让文件为空,像这样:

# This is an empty file
# There is no flask application here
Run Code Online (Sandbox Code Playgroud)
  1. 在 CLI 中运行以下命令:
export FLASK_APP=app.py
flask run
Run Code Online (Sandbox Code Playgroud)
  1. 观看错误出现在屏幕上

解决方案1:

  1. 使函数返回应用程序
  2. 明确创建一个名为app的变量并使其等于函数的返回值,如下所示:
from flask import Flask
def create_app():
    app = Flask(__name__)
    @app.route('/')
    def hello_world():
        return 'Hello, World!'
    return app
app = create_app()
Run Code Online (Sandbox Code Playgroud)

解决方案 2:在函数之外获取应用程序:

from flask import Flask

app = Flask("abc")

@app.route('/')
def hello_world():
    return 'Hello, World!'
Run Code Online (Sandbox Code Playgroud)


小智 5

Flask 错误的解决方案:无法找到 Flask 应用程序。您没有提供“FLASK_APP”环境变量,并且在当前目录中找不到“wsgi.py”或“app.py”模块。在 Windows 上,当您尝试set FLASKAPP=appname.py使用 PowerShell 时,如果出现上述错误,请尝试此操作

$env:FLASK_APP = "filename"
$env:FLASK_ENV = "development"
Flask run
Run Code Online (Sandbox Code Playgroud)

如果您在启动 Flask 应用程序时遇到问题,请尝试一下。