Книга посвящена разработке веб-сайтов на языке Python с применением веб-фреймворка Django.
Представлены новинки Django 4 и дано наиболее полное описание его инструментов: моделей, контролеров, шаблонов, средств обработки пользовательского ввода, включая выгруженные файлы, разграничения доступа, посредников, сигналов, инструментов для отправки электронной почты, кэширования и пр.
Рассмотрены дополнительные библиотеки, производящие обработку BBCode, CAPTCHA, вывод графических миниатюр, аутентификацию через социальные сети (в частности, “ВКонтакте”), интеграцию с Bootstrap. Рассказано о программировании веб-служб REST, использовании и настройке административного веб-сайта Django, публикации сайтов с помощью веб-сервера Uvicorn, работе с базами данных PostgreSQL, локализации строк, форматов и временных зон.
Подробно описано создание полнофункционального веб-сайта — электронной доски объявлений.
Электронное приложение-архив на сайте издательства содержит коды всех примеров.
Что такое веб-фреймворк? Фреймворк (от англ. framework — каркас) — это программная библиотека, реализующая бОльшую часть типовой функциональности разрабатываемого продукта.
То есть в полном смысле слова каркас, на который разработчик конкретного продукта «навешивает» свои узлы, механизмы и детали декора.
Веб-фреймворк — это фреймворк для программирования веб-сайтов. Как правило, он обеспечивает следующую типовую функциональность: •взаимодействие с базой данных — посредством единых инструментов, независимых от конкретной СУБД; •обработка клиентских запросов — в частности, определение, какая страница запрашивается; •генерирование запрашиваемых веб-страниц на основе шаблонов; •разграничение доступа — допуск к закрытым страницам только зарегистрированных пользователей и только после выполнения ими входа; •обработка данных, занесенных посетителями в веб-формы, — в частности, проверка их на корректность; •получение и сохранение файлов, выгруженных пользователями; •рассылка электронных писем; •кеширование сгенерированных страниц на стороне сервера — для повышения производительности; •локализация — перевод сайта на другие языки! Внимание! Автор предполагает, что читатели этой книги знакомы с языками HTML, CSS, JavaScript, Python, принципами работы СУБД и имеют базовые навыки в веб-разработке. В книге все это описываться не будет.