首页 > 解决方案 > 尽管指定的 FLASK_APP 文件已重命名,但 FLASK RUN 仍然有效

问题描述

我正在关注关于 FLASK 的教程。最初,路由是在名为“flaskblog.py”的根文件中定义的。我必须将 FLASK_APP 变量设置为“flaskblog.py”才能使“flask run”工作。

在教程的后期,项目被重组为包,“flaskblog.py”文件重命名为“run.py”。创建了一个名为“flaskblog”的文件夹(即包)。

令我惊讶的是,“烧瓶运行”仍然有效,甚至似乎标记它正在使用“flaskblog.py”......但这不再存在了。

文件夹结构:

(base) C:\flask_blog>tree /F
Folder PATH listing for volume OSDisk
Volume serial number is 36E9-84F4
C:.
│   run.py
│   site.db
│
├───.vscode
│       launch.json
│
├───flaskblog
│   │   forms.py
│   │   models.py
│   │   routes.py
│   │   site.db
│   │   __init__.py
│   │
│   ├───static
│   │       main.css
│   │
│   ├───templates
│   │       about.html
│   │       css.html
│   │       home.html
│   │       layout.html
│   │       layout_plain.html
│   │       login.html
│   │       register.html
│   │
│   └───__pycache__
│           forms.cpython-37.pyc
│           models.cpython-37.pyc
│           routes.cpython-37.pyc
│           __init__.cpython-37.pyc
│
└───__pycache__
        app.cpython-37.pyc
        flaskblog.cpython-37.pyc
        forms.cpython-37.pyc
        models.cpython-37.pyc

注意没有“flaskblog.py”。

看看我使用“flask run”时得到了什么:

(ariel) C:\flask_blog>SET FLASK_APP=flaskblog.py

(ariel) C:\flask_blog>flask run
 * Serving Flask app "flaskblog.py"
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
C:\ProgramData\Anaconda3\envs\ariel\lib\site-packages\flask_sqlalchemy\__init__.py:835: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future.  Set it to True or False to suppress this warning.
  'SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and '
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

run.py 很简单:

from flaskblog import app

if __name__ == '__main__':
    app.run(debug=True)

实际上,只有在我想使用“python run.py”而不是“flask run”启动应用程序时才会调用它。

标签: pythonflask

解决方案


您使用以下命令将 Flask App 名称设置为 flaskblog.py

SET FLASK_APP=flaskblog.py

如果你重置它,它将有新的名称


推荐阅读