• Flask – компактный фреймворк для быстрой разработки веб-приложений. Flask
универсален – на его основе можно создавать сложные приложения и API, и в то же время он идеально подходит для разработки небольших проектов. Самый большой плюс Flask – на нем очень просто реализовать генератор статических сайтов. Основные преимущества Flask: • Минималистичность. Flask отличается небольшим размером – в нем есть все самое необходимое и нет ничего лишнего. • Гибкость. Фреймворк не диктует определенных правил и позволяет разработчику сохранить полный контроль над структурой приложения. • Простота в использовании. Он имеет несколько встроенных функций, которые позволяют сразу начать создавать полноценные веб-приложения, даже если у вас нет опыта в веб-разработке на Python. Например, у Flask есть встроенный сервер, поддержка сессий, обработчик форм, шаблонизатор. • Интеграция с дополнительными библиотеками. Фреймворк очень просто интегрируется с многочисленными библиотеками, которые расширяют его функциональность. Это позволяет создать гибкий, масштабируемый проект для любой сферы. • Простота тестирования. У Flask есть встроенный тестовый клиент, который максимально упрощает тестирование и отладку. Простейшее приложение на Flask Этот код создает объект приложения Flask с помощью класса Flask и присваивает его переменной app. Декоратор @app.route('/') устанавливает маршрут для главной страницы нашего приложения, а метод def hello()определяет, что будет отображаться на этой странице. if __name__ == '__main__': проверяет, запускается ли данный файл как самостоятельное приложение, или импортируется как модуль. В нашем случае он запускается как независимое приложение, поэтому вызывается метод app.run(), который запускает веб-сервер Flask. Result: Маршруты в Flask Маршруты – это URL-адреса, по которым пользователи могут открывать определенные страницы (разделы) веб- приложения. Маршруты в Flask определяются с помощью декоратора @app.route(). Для каждого маршрута можно написать отдельную функцию представления, которая будет выполнять какие-то действия при переходе по определенному адресу. Рассмотрим пример: Result: GET- и POST-запросы • GET и POST – это HTTP-запросы, которые используются для отправки данных между клиентом и сервером. • GET-запрос применяют для получения данных от сервера. При выполнении GET-запроса клиент отправляет запрос на сервер, а сервер возвращает запрошенную информацию в ответ. GET-запросы могут содержать параметры в URL-адресе, которые используются для передачи дополнительных данных. • POST-запрос используют для отправки данных на сервер. При выполнении POST-запроса клиент отправляет данные на сервер, а сервер их обрабатывает. POST-запросы обычно применяют для отправки форм, с данными из которых нужно что-то сделать на бэкенде. • Рассмотрим простейший пример обработки формы авторизации. Базы данных для хранения учетных записей у нас пока нет, поэтому в приведенном ниже коде мы пропустим всю функциональность для проверки корректности логина и пароля Маршрут @app.route('/login', methods=['GET', 'POST']) обрабатывает и POST, и GET-запросы: в первом случае он отправит данные на сервер, во втором – просто выведет страницу с формой авторизации. • Для вывода формы на странице сделаем простейший шаблон. Этот код нужно сохранить в файле login.html, в директории templates (в этой папке Flask по умолчанию ищет шаблоны): Создаём HTML-шаблон • А теперь создадим HTML-шаблоны: выделим под них папку templates и добавим в неё файл base.html со следующим содержимым: • Этот шаблон будет отправной точкой для всех остальных HTML- страниц. В нём мы прописали заголовок:
• Вы, наверное, уже обратили внимание на странные элементы, а точнее теги {%
block %} и {% endblock %}. Они как раз нужны, чтобы динамически добавлять туда новые элементы: другие HTML-блоки, JavaScript-код и тому подобное. • Этот шаблон переопределяет заголовок страницы и определяет контент, который будет отображаться на домашней странице: заголовок страницы Home и немного текста. Task: • Создать Flask-приложение, которое выводит список книг на веб- странице. Для этого создадим файлы app.py для Flask-приложения и books.html для шаблона.