Easy python web development

Python Web Development Tutorials

Python is a beautiful language. It’s easy to learn and fun, and its syntax (the rules) is clear and concise. Python is a popular choice for beginners, yet still powerful enough to back some of the world’s most popular products and applications from companies like NASA, Google, IBM, Cisco, Microsoft, Industrial Light & Magic among others.

One area where Python shines is web development. Python offers many frameworks from which to choose from including bottle.py, Flask, CherryPy, Pyramid, Django and web2py. These frameworks have been used to power some of the world’s most popular sites such as Spotify, Mozilla, Reddit, the Washington Post and Yelp. The tutorials and articles in this section cover techniques used in the development of Python Web applications and focus on how to program real-world solutions to problems that ordinary people actually want to solve.

What you will learn from this section

  • Testing, mocking and Test Driven Development
  • Integrating back-end code with front-end libraries and frameworks
  • How to deploy your Python Web Application
  • Containerizing web applications
  • Designing and interacting with APIs
  • Social Authentication
  • Improving your application’s performance through caching

Free Bonus: Click here to get access to a free Django Learning Resources Guide (PDF) that shows you tips and tricks as well as common pitfalls to avoid when building Python + Django web applications.

Читайте также:  Пустая переменная в питоне

Free Bonus: Click here to get access to a free Flask + Python video tutorial that shows you how to build Flask web app, step-by-step.

Источник

Easy python web development

Перейдите в только что созданную директорию:

🐍 Самоучитель по Python для начинающих. Часть 23: Основы веб-разработки на Flask

Flask по умолчанию использует порт 5000. При желании его можно изменить на более привычный 8000:

🐍 Самоучитель по Python для начинающих. Часть 23: Основы веб-разработки на Flask

Переменные в маршрутах

В URL можно передавать различные значения. Запустите этот код и перейдите по адресу, например, http://localhost:5000/user/EvilAdmin

🐍 Самоучитель по Python для начинающих. Часть 23: Основы веб-разработки на Flask

А так можно передать в маршруте целое число:

🐍 Самоучитель по Python для начинающих. Часть 23: Основы веб-разработки на Flask

GET- и POST-запросы

GET и POST – это HTTP-запросы, которые используются для отправки данных между клиентом и сервером.

GET-запрос применяют для получения данных от сервера. При выполнении GET-запроса клиент отправляет запрос на сервер, а сервер возвращает запрошенную информацию в ответ. GET-запросы могут содержать параметры в URL-адресе, которые используются для передачи дополнительных данных.

POST-запрос используют для отправки данных на сервер. При выполнении POST-запроса клиент отправляет данные на сервер, а сервер их обрабатывает. POST-запросы обычно применяют для отправки форм, с данными из которых нужно что-то сделать на бэкенде.

Рассмотрим простейший пример обработки формы авторизации. Базы данных для хранения учетных записей у нас пока нет, поэтому в приведенном ниже коде мы пропустим всю функциональность для проверки корректности логина и пароля (мы рассмотрим этот вопрос позже, в одном из заданий):

🐍 Самоучитель по Python для начинающих. Часть 23: Основы веб-разработки на Flask

Шаблонизатор Jinja2

Шаблоны в Flask используются для динамического формирования веб-страниц. Шаблоны представляют собой HTML страницы, в которые можно передавать любые данные с бэкенда. К шаблонам можно подключать любые CSS -фреймворки типа Bootstrap и Tailwind , и любые JS -скрипты.

Поведением шаблонов управляет шаблонизатор Jinja 2 – он предоставляет функциональность для создания условий, циклов, макросов, наследования и блоков. Главные преимущества шаблонизатора:

  • Может проводить различные операции с контентом самостоятельно, не обращаясь к бэкенду.
  • Обеспечивает наследование дизайна и стилей от базового шаблона.

Наследование работает так:

  • Базовый шаблон, который обычно называется base.html, содержит общую разметку для сайта.
  • В base.html подключаются локальные и CDN-фреймворки (CSS, JS), задаются фоновые изображения и фавикон.
  • Дочерние шаблоны наследуют этот базовый шаблон и дополняют его своим собственным контентом.

Продемонстрируем наследование на примере. Сохраните в папке templates два файла. Это содержимое файла base . html – в нем подключается CSS -фреймворк Bootstrap , кастомные стили custom . css из статической папки static, иконки Font Awesome :

🐍 Самоучитель по Python для начинающих. Часть 23: Основы веб-разработки на Flask

Работа с базой данных

Для работы с базами данных в Flask удобно использовать ORM SQLAlchemy. Как уже упоминалось в предыдущей главе о SQLite, ORM играет роль своеобразной прослойки между приложением и СУБД SQLite , и позволяет работать с базами без использования языка SQL . Надо заметить, что работать с базами данных в SQLAlchemy немного сложнее, чем в Django ORM , но гораздо проще, чем в чистом Python .

Начнем с установки SQLAlchemy в виртуальное окружение:

🐍 Самоучитель по Python для начинающих. Часть 23: Основы веб-разработки на Flask

Практика

Задание 1

Напишите Flask -приложение, которое выводит в шаблон index . html приветствие для пользователя. Приветствие зависит от времени суток:

  • С 6:00 до 12:00 – «Доброе утро»
  • С 12:00 до 18:00 – «Добрый день»
  • С 18:00 до 24:00 – «Добрый вечер»
  • С 00:00 до 6:00 – «Доброй ночи»

🐍 Самоучитель по Python для начинающих. Часть 23: Основы веб-разработки на Flask

🐍 Самоучитель по Python для начинающих. Часть 23: Основы веб-разработки на Flask

🐍 Самоучитель по Python для начинающих. Часть 23: Основы веб-разработки на Flask

В приложении app . py можно определить только маршрут, вся функциональность по определению уровней доступа находится в шаблоне:

🐍 Самоучитель по Python для начинающих. Часть 23: Основы веб-разработки на Flask

Напишем модель Book и скрипт, который создает и заполняет базу из json-файла. Затем создадим app . py с двумя маршрутами – для вывода всех книг, и для вывода отдельной книги:

🐍 Самоучитель по Python для начинающих. Часть 23: Основы веб-разработки на Flask

Задание 5

Для онлайн-магазина нужно написать модуль, который поможет сотрудникам сделать инвентаризацию. Приложение состоит из базы данных, в которой таблицы связаны сложными отношениями:

  • Каждый производитель (Manufacturer) поставляет несколько типов товаров (Category) – ноутбуки, наушники, смартфоны и так далее.
  • Одну и ту же категорию товаров могут производить несколько компаний.
  • В каждой категории может быть множество товаров (Item).

Нужно реализовать вывод всех товаров по поставщикам и по категориям. Все данные о товарах находятся в файле info.csv.

🐍 Самоучитель по Python для начинающих. Часть 23: Основы веб-разработки на Flask

Файл models . py , описывающий структуру базы данных, выглядит так:

🐍 Самоучитель по Python для начинающих. Часть 23: Основы веб-разработки на Flask

Задание 6

Для супермаркета нужно написать веб-приложение, которое выводит список товаров на складе и позволяет добавлять новые.

🐍 Самоучитель по Python для начинающих. Часть 23: Основы веб-разработки на Flask

Приложение состоит из файлов app.py, create_db.py и models.py. Для добавления новых товаров используется шаблон add . html и маршрут/функция add :

🐍 Самоучитель по Python для начинающих. Часть 23: Основы веб-разработки на Flask

Задание 7

Для ветеринарной клиники нужно написать модуль учета пациентов. В приложении должны быть функции добавления, редактирования и удаления карточек.

🐍 Самоучитель по Python для начинающих. Часть 23: Основы веб-разработки на Flask

Начнем с создания базы данных на основе моделей. Функции add_patient, edit_patient, delete_patient реализованы в приложении app.py. Шаблоны add . html и edit . html обеспечивают добавление и редактирование карточек:

🐍 Самоучитель по Python для начинающих. Часть 23: Основы веб-разработки на Flask

Задание 8

Напишите модуль аутентификации для Flask -приложения. Необходимо реализовать:

  • регистрацию;
  • проверку учетных данных при входе;
  • перенаправление на страницу профиля.

🐍 Самоучитель по Python для начинающих. Часть 23: Основы веб-разработки на Flask

Проект включает в себя файлы app.py, create_db.py и models . py . Кроме того, модуль использует шаблоны:

После регистрации и входа пользователь перенаправляется на страницу своего профиля:

🐍 Самоучитель по Python для начинающих. Часть 23: Основы веб-разработки на Flask

Задание 9

Напишите веб-приложение для хранения заметок. Необходимо реализовать набор CRUD операций – вывод, добавление, редактирование и удаление заметок. При создании базы данных следует учесть, что заметка может относиться только к одной категории, а в категории может быть множество заметок. На главной странице выводятся все заметки, причем текст ограничивается первыми 300 символами. Нажатие на ссылку «Далее» открывает страницу с полным текстом заметки.

🐍 Самоучитель по Python для начинающих. Часть 23: Основы веб-разработки на Flask

База данных для приложения создается с помощью скрипта create _ db . py на основе моделей. CRUD операции описаны в app . py . При нажатии на название категории шаблон и маршрут category выводят все заметки, относящиеся к данной теме.

🐍 Самоучитель по Python для начинающих. Часть 23: Основы веб-разработки на Flask

Задание 10

Напишите Flask приложение для ведения блога. Каждая запись может иметь несколько тегов, но должна относиться к одной категории. Как и в предыдущем задании, нужно реализовать просмотр отдельных записей, добавление, редактирование и удаление постов. При выводе всех записей, а также записей по категориям и тегам посты должны отображаться в порядке убывания даты, т.е. самые новые находятся сверху.

🐍 Самоучитель по Python для начинающих. Часть 23: Основы веб-разработки на Flask

Прежде всего разработаем модели Tag , Category и Post , а затем создадим на их основе базу данных при помощи скрипта.

Приложение использует следующие шаблоны:

CRUD операции реализованы в главном файле приложения app . py . Чтобы самые свежие записи выводились первыми, в models . py мы определили метод newest _ first . При нажатии на ссылку «Читать» выводится полный текст записи:

🐍 Самоучитель по Python для начинающих. Часть 23: Основы веб-разработки на Flask

Подведем итоги

Мы рассмотрели основные приемы разработки простых веб-приложений на основе фреймворка Flask:

  • Создание маршрутов и функций представления.
  • Получение и обработку данных с фронтенда.
  • CRUD операции.
  • Основные возможности шаблонизатора Jinja2.

При создании приложений Flask для получения данных с фронтенда обычно используются формы WTF Forms . В этой статье при решении заданий намеренно использовались HTML -формы – так процесс передачи и обработки данных выглядит максимально понятно.

В следующей статье будем изучать NumPy .

  1. Особенности, сферы применения, установка, онлайн IDE
  2. Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
  3. Типы данных: преобразование и базовые операции
  4. Методы работы со строками
  5. Методы работы со списками и списковыми включениями
  6. Методы работы со словарями и генераторами словарей
  7. Методы работы с кортежами
  8. Методы работы со множествами
  9. Особенности цикла for
  10. Условный цикл while
  11. Функции с позиционными и именованными аргументами
  12. Анонимные функции
  13. Рекурсивные функции
  14. Функции высшего порядка, замыкания и декораторы
  15. Методы работы с файлами и файловой системой
  16. Регулярные выражения
  17. Основы скрапинга и парсинга
  18. Основы ООП: инкапсуляция и наследование
  19. Основы ООП: абстракция и полиморфизм
  20. Графический интерфейс на Tkinter
  21. Основы разработки игр на Pygame
  22. Основы работы с SQLite
  23. Основы веб-разработки на Flask

Материалы по теме

Источник

Оцените статью