🏠 | 💻 IT | Flask |

Первый проект на Flask

Contents
Introduction
FLASK_APP
Просмотр всех методов (url_map)
Пример

Introduction

Предположим, что вы уже умеете писать какой-то код с помощью Flask. Если нет - прочитайте статью «Основы Flask»

Вы можете создать какой-то .py файл и запустить его командой python example.py. У вас всё работате и открыв 127.0.0.1:5000 в браузере или сделав запрос к своему REST API вы видите нужный результат.

Это хорошее начало, но пока что только первый шаг к созданию приложения на Flask

FLASK_APP

To показать Flask в каком файле находится приложение нужно присвоить правильное значение переменной FLASK_APP.

Допустим вы делаете сайт TopBicycle.ru и код вашего приложения сохраненён как topBicycle.py

Если вы в Windows execute

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)

Просмотр всех методов

To посмотреть какие 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»

Статьи о Flask
Python
Flask
Запуск Flask на хостинге
Запуск Flask на Linux сервере
Шаблоны Jinja
Flask FAQ
Web Forms
Errors
Share in social media: