Я следую учебному пособию по FLASK. Первоначально маршруты были определены в файле root, который называется «flaskblog.py». Мне пришлось установить переменную FLASK_APP в "flaskblog.py", чтобы "flask run" работал.
Позже в этом уроке проект был реструктурирован в пакеты, и "flaskblog.py" файл переименован в «run.py». Была создана папка (то есть пакет) с именем "flaskblog".
К моему удивлению, "flask run" все еще работал, и даже, кажется, помечает, что использует "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".