Первый проект на Flask
Введение
Предположим, что вы уже умеете писать какой-то код с помощью Flask. Если нет - прочитайте статью
«Основы Flask»
Вы можете создать какой-то .py файл и запустить его командой python example.py.
У вас всё работате и открыв 127.0.0.1:5000 в браузере или сделав запрос к своему
REST API вы видите нужный результат.
Это хорошее начало, но пока что только первый шаг к созданию приложения на Flask
FLASK_APP
Чтобы показать Flask в каком файле находится приложение нужно присвоить правильное значение переменной
FLASK_APP.
Допустим вы делаете сайт
TopBicycle.ru
и код вашего приложения сохраненён как topBicycle.py
Если вы в
Windows
выполните
set FLASK_APP=topBicycle.py
Или export для Linux
export FLASK_APP=topBicycle.py
Без пробелов вокруг =
На время разработки приложения присвойте переменной FLASK_ENV значение development
set FLASK_ENV=development
Или export для Linux
export FLASK_ENV=development
development упростит нам разработку, например, в этом режиме Flask
будет следить за изменением исходного кода и автоматически перезапускать сервер.
Теперь вы можете перейти в папку с вашим .py файлом и выполнить
flask run чтобы запустить приложение
flask run
(topBicycle_venv) C:\Users\Andrei\PycharmProjects\topBicycle>flask run
* Serving Flask app "topBicycle.py" (lazy loading)
* Environment: development
* Debug mode: on
* Restarting with stat
* Debugger is active!
* Debugger PIN: 131-857-324
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
Просмотр всех методов
Чтобы посмотреть какие url слушает ваше приложение и какие HTTP методы в данный момент поддерживает каждая
url можно перейти в интерактивный режим и воспользоваться .url.map
CTRL + C
python
import topBicycle
topBicycle.app.url_map
Map([<Rule '/' (OPTIONS, GET, HEAD) -> welcome>,
<Rule '/static/<filename>' (OPTIONS, GET, HEAD) -> static>])
Показаны все обслуживаемые url, в нашем случае одна / названия функций и разрешенные методы.
Пример
В качестве первого проекта сделаем простое приложение, которое на главной странице будет показывать статичный html
а на странице /count_views будет вести подсчёт посещений
Назовём файл project.py
from flask import Flask, render_template, abort, jsonify, request, redirect, url_for
app = Flask(__name__)
@app.route("/")
def home():
return render_template("home.html")
counter = 0
@app.route("/count_views/")
def count_views():
global counter
counter += 1
return "This page was served " + str(counter) + " times"
Нужно в папке с project.py создать папку templates и в ней создать какой-то простой .html файл
назвать его home.html
Также не забудьте про export или set если вы под Windows
export FLASK_APP=project.py
Теперь по адресу
127.0.0.1:5000/
Будет ваш home.html файл а по адресу
127.0.0.1:5000/count_views/
Будет счётчик посещений в виде текста
This page was served X times
Когда проект готов, нужно воспользоваться
Freeze
для того, чтобы сохранить список зависимостей в файл requirements.txt
python -m pip freeze > projects/your_project/requirements.txt
Этот файл requirements.txt нужно будет отправить на сервер
для деплоя
или просто сохранить
чтобы потом вернуться к работе над проектом
Общие правила создания проектов на Flask
Создадим в проекте папку static и поместим туда изображение flasklogo.png
Создадим папку templates а внутри этой папки файлы home.html и base.html
base.html будет шаблоном, который мы будем использовать для home.html и многих других файлов, которые
создадим в будущем.
Работу с шаблонами разберём в следующем уроке -
«Шаблоны Jinja»