python - 尽管指定的 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”启动应用程序时才会调用它。
解决方案
您使用以下命令将 Flask App 名称设置为 flaskblog.py
SET FLASK_APP=flaskblog.py
如果你重置它,它将有新的名称
推荐阅读
- java - Maven 依赖项未安装在自定义 jar 文件中
- java - 无法导入“import com.google.firebase.firestore.MetadataChanges”
- generics - 在 Kotlin 运行时获取泛型类型
- r - 如何替换由列表组成的数据框中的所有 NULL 值?
- angular - 如何设计http请求服务?我究竟做错了什么?
- jestjs - 升级 Jest 后运行测试时出错
- jmeter - 使用 JMeter 的动态请求
- c++ - 调用 C++ 基方法而不是派生方法
- python - 如何解决 c = cov(x, y, rowvar) RuntimeWarning:python 3.8 中切片错误的自由度 <= 0?
- c# - 如何解构可空元组?