Skill Base

Основы Flask

Теория, подробная установка, основные моменты


Что такое Flask? (еще раз)

Flask — это легковесный веб-фреймворк на языке Python. Он предназначен для быстрого создания веб-приложений. Flask относится к категории микрофреймворк, так как имеет минимальный набор встроенных инструментов и функций, но его можно расширить с помощью дополнительных библиотек.

Фреймворк идеально подходит для создания небольших приложений, прототипов, а также для микросервисов.


Установка

  1. Убедитесь, что Python установлен. Проверьте:
    python --version
    
  2. Установите pip, если он отсутствует (обычно он идет с Python).
  3. Установите Flask:
    pip install flask
    

Проверьте, что Flask установлен:

python -c "import flask; print(flask.__version__)"


Теория

Flask-приложения запускаются на локальном сервере разработки. По умолчанию сервер слушает порт 5000. Чтобы запустить приложение:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "Hello, Flask!"

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

Запустив файл, сервер будет доступен по адресу: http://127.0.0.1:5000.


Архитектура приложения

  1. Приложение (app) — объект класса Flask, через который происходит настройка всего приложения.
  2. Маршруты (routes) — определяют, какие функции Python обрабатывают определенные URL.
  3. Шаблоны (templates) — HTML-страницы, которые можно генерировать динамически.
  4. Запросы и ответы:
    • HTTP-запросы (GET, POST и др.) отправляются к серверу.
    • Flask возвращает HTTP-ответ.

Обработка запросов

Flask поддерживает методы HTTP-запросов:

Пример обработки запроса:

from flask import request

@app.route("/submit", methods=["POST"])
def submit():
    data = request.form.get("key")
    return f"Received: {data}"



Таблица основных методов Flask

Метод Описание
@app.route Определяет маршрут (URL) для обработки запросов.
app.run Запускает сервер разработки.
render_template Генерирует HTML из шаблонов.
request.args Получает параметры из строки запроса (GET).
request.form Получает данные формы (POST).
request.json Получает JSON-данные из тела запроса.
redirect Перенаправляет пользователя на другой маршрут.
url_for Создает URL для заданного маршрута.
Flask.config Настройки приложения, например DEBUG, SECRET_KEY и т.д.
make_response Формирует ответ с дополнительными заголовками или изменениями.