Django: Практика создания Web-сайтов на Python — Книга посвящена разработке Web-сайтов на популярном языке программирования Python с использованием библиотеки Django. Описывается создание моделей, контроллеров и шаблонов, применение форм для ввода данных и выгрузки на сайт файлов, реализация разграничения доступа, комментирование кода, работа со статичными страницами, применение сторонних библиотек для вывода миниатюр. Рассказывается о форматировании текста тегами BBCode, привязке к позициям тегов и выполнении поиска по тегам. Рассматриваются инструменты для генерирования каналов новостей RSS и Atom, рассылки электронной почты и настройка встроенного административного сайта Django под свои нужды. Детально описывается процесс разработки и публикации полнофункционального коммерческого Web-сайта, использующего, в том числе, технологию AJAX.
Название: Django: Практика создания Web-сайтов на Python Автор: Владимир Дронов Издательство: БХВ-Петербург Год: 2016 Страниц: 530 Формат: PDF Размер: 115 Мб ISBN: 978-5-9775-0421-8 Качество: Отличное Серия: Профессиональное программирование Язык: Русский
Содержание:
Введение Язык программирования Python Библиотека Web-программирования Django Некоторые замечания от автора Типографские соглашения Благодарности Часть I. Web-приложения. Язык Python. Библиотека Django Глава 1. Введение в серверное Web-программирование Статичные Web-страницы и Web-приложения - две эпохи в развитии Интернета Статичные Web-страницы Web-приложения Базы данных. Реляционные базы данных Что такое реляционная база данных? Что хранит реляционная база данных? Таблицы, поля и записи Индексы и ключи Связи Основные принципы разработки серверных Web-приложений Модели Контроллеры Шаблоны Служебные модули Что дальше? Глава 2. Язык программирования Python Интерактивный интерпретатор Python Основные понятия Python Выражения Операторы. Порядок выполнения и приоритет операторов Функции Переменные Типы данных и операции с ними Числа Строки Запись строк Обработка строк: Списки Обычные списки Кортежи Словари Присваивание списков. Ссылки Логические величины Запись логических величин Операторы сравнения Логические операторы Значение None Преобразования типов Управление выполнением кода. Управляющие выражения Блоки Условные выражения Циклы Цикл с условием Цикл по списку Дополнительные возможности циклов Функции Объявление функции Локальные переменные Значения параметров по умолчанию. Именованные параметры Функции с произвольным количеством параметров Необязательные параметры Классы и объекты Основные понятия и приемы работы Объявление классов Наследование классов Стандартные типы Python как объекты Обработка ошибок. Исключения Комментарии Модули. Импорт. Библиотека Модули и пакеты Импорт Стандартная библиотека. Сторонние библиотеки Текстовый редактор Notepad++ Что дальше? Глава 3. Библиотека Django Библиотека Django - зачем она нужна? Основные термины и принципы Django-программирования Проект Приложение Привязка интернет-адресов Структура Django-сайта Поддерживаемые форматы баз данных Отладочный Web-сервер Django Что дальше? Глава 4. Создание проекта и приложения Django Создание проекта Django Запуск и останов отладочного Web-сервера Настройка проекта Django Сведения о базе данных Параметры локализации Список активных приложений Синхронизация с базой данных Создание приложения Django Встроенный административный сайт Django Что дальше? Часть II. Вывод данных Глава 5. Модели Django Создание моделей Как создается модель Классы полей для различных типов данных Классы полей для простых типов данных Классы полей для производных типов данных Параметры полей Параметры, применимые для всех типов данных Параметры, специфичные для определенных типов данных Создание связей Методы модели Метаданные модели Структуры, создаваемые Django в базе данных Синхронизация с базой данных: некоторые нюансы Работа с моделью во встроенном административном Web-сайте Извлечение данных из моделей Доступ ко всем записям модели Доступ к полям записи Фильтрация записей Сортировка записей Агрегатные функции Поиск нужной записи Прочие возможности по выборке записей из моделей Что дальше? Глава 6. Контроллеры Django. Регулярные выражения Регулярные выражения Привязка интернет-адресов Привязка к приложениям Привязка к контроллерам приложения Привязка простых интернет-адресов Указание в интернет-адресах параметров, передаваемых контроллеру Создание контроллеров Обработка «ошибки 404» Что дальше? Глава 7. Простые шаблоны Django Что такое шаблон Django? Команды шаблонизатора Переменные шаблона Теги шаблона Теги условных выражений Тег цикла Теги, управляющие выводом Комментарии Фильтры шаблона Рендеринг шаблона Что дальше? Глава 8. Более сложные шаблоны Django Оформление и верстка шаблонов Статичные файлы и их обработка Устранение дублирования кода в шаблонах Наследование шаблонов Подгружаемые шаблоны Шаблоны и статичные файлы уровня проекта Формирование интернет-адресов средствами Django Что дальше? Глава 9. Постраничный вывод данных. Пагинатор Django Инициализация пагинатора Получение заданной страницы списка Формирование гиперссылок для перехода между страницами Возврат на корректную страницу списка Что дальше? Глава 10. Вывод на основе классов. Классы-контроллеры Django Введение в классы-контроллеры Класс-контроллер Template View Класс-контроллер списка ListView Класс-контроллер подробных сведений Detail View Вынос общей функциональности в другие классы Классы-контроллеры для вывода по датам Класс-контроллер архива ArchivelndexView Класс-контроллер вывода по годам YearArchiveView Класс-контроллер вывода по месяцам MonthArchiveView Класс-контроллер вывода по дням DayArchiveView Класс-контроллер вывода по текущей дате TodayArchiveView Что дальше? Часть III. Ввод и правка данных Глава 11. Простые формы Django Высокоуровневые классы-контроллеры для добавления, правки и удаления записей Создание шаблонов форм Интерфейс для добавления, правки и удаления записей Формы Django, связанные с моделями Создание формы, связанной с моделью Простой способ Сложный способ Использование формы, связанной с моделью Использование формы в классах-контроллерах, предназначенных для добавления и правки записей Использование формы в классах-контроллерах, предназначенных для вывода данных Использование формы в функциях-контроллерах Обычные формы Django Создание обычных форм Обработка обычных форм Инструменты модели для добавления, правки и удаления записей Что дальше? Глава 12. Более сложные формы Django Сообщения об ошибках и проверка данных Задание сообщений об ошибках Валидаторы и их написание Проверка данных на уровне формы Управление выводом форм на экран Назначение полям формы элементов управления Управление генерированием HTML-кода формы Сообщения Django и их использование Данные сессии Наборы форм Наборы форм, связанные с моделями Создание наборов форм Вывод наборов форм Сохранение введенных в набор форм данных Реализация переупорядочения и удаления записей посредством набора форм Как набор форм выводится на экран? Вложенные наборы форм Что дальше? Глава 13. Выгрузка файлов на Web-сайт Необходимые настройки сайта Хранение файлов в модели Классы полей для хранения файлов в модели Получение сведений о файлах, хранящихся в модели Выгрузка файлов через формы Поля формы, предназначенные для выгрузки файлов Настройка формы для выгрузки файлов Обработка выгруженных файлов в контроллерах Проверка типа выгруженных файлов Проблема «мусорных» файлов и ее решение Что дальше? Часть IV. Разграничение доступа. Комментарии. Статичные страницы Глава 14. Разграничение доступа Принципы разграничения доступа Настройка проекта для реализации разграничения доступа Список пользователей и групп Реализация входа на сайт Реализация разграничения доступа Проверка, выполнил ли пользователь вход на сайт Проверка, имеет ли пользователь необходимые права Более сложные случаи проверки Выполнение проверки в шаблонах Реализация выхода с сайта Создание дополнительных прав Получение сведений о пользователе Использование модели User Низкоуровневые средства для реализации входа и выхода Что дальше? Глава 15. Комментарии Django Настройка проекта для реализации комментирования Как работает подсистема комментирования Django? Базовые средства для реализации комментирования Вывод стандартной формы для комментирования Вывод стандартного списка комментариев Управление выводом списка комментариев и формы комментирования Управление выводом списка комментариев Управление выводом формы для комментирования Перенаправление после добавления комментария Комментирование только для зарегистрированных пользователей Автомодератор Django и его использование Создание автомодератора Шаблон почтового сообщения Настройка подсистемы отправки почты Инструменты Django для модерирования комментариев Что дальше? Глава 16. Статичные страницы Django Введение в статичные страницы Настройка проекта для реализации статичных страниц Работа со статичными страницами Как указать интернет-адреса статичных файлов и файлов, выгруженных на сайт? Привязка статичных страниц Создание шаблонов для статичных страниц Получение списка статичных страниц в шаблонах Что дальше? Часть V. Дополнительные библиотеки Глава 17. Создание и вывод миниатюр. Библиотека easy-thumbnails Введение в библиотеку easy-thumbnails Настройка проекта Базовые настройки Параметры миниатюр по умолчанию Псевдонимы Вывод миниатюр Вывод на основе псевдонима Вывод с указанием параметров Вывод изображения по умолчанию Что дальше? Глава 18. Привязка тегов к данным. Библиотека django-taggit Введение в теги Введение в библиотеку django-taggit Настройка проекта Добавление тегов к позициям Обработка тегов Поиск по тегам Программное управление тегами Вывод тегов на экран Администрирование списка тегов Что дальше? Глава 19. Форматирование текста с применением тегов BBCode Библиотека django-precise-bbcode Как Web-обозреватель форматирует текст при выводе Теги BBCode Библиотека django-precise-bbcode Введение в библиотеку django-precise-bbcode Теги BBCode, поддерживаемые django-precise-bbcode Настройка проекта Базовые настройки Настройки библиотеки django-precise-bbcode Реализация поддержки BBCode Использование класса поля BBCodeTextField Использование тега шаблона bbcode и фильтра bbcode Использование пррграммного форматировщика Какими HTML-тегами заменяются теги BBCode? Создание собственных тегов BBCode Добавление поддержки смайликов Что дальше? Часть VI. Создание Web-сайта Глава 20. Планирование и предварительные действия Планирование сайта Основные этапы планирования сайта Логическая структура Web-сайта Физическая структура Web-сайта Средства для администрирования сайта Немного о дизайне сайта Проект сайта «Веник-Торг» Предварительные действия Создание проекта сайта Настройки проекта Начальные привязки Создание страниц входа и выхода Базовые шаблоны Универсальный шаблон формы Собственно шаблоны страниц входа и выхода Оформление Что дальше? Глава 21. Главная страница Приложение и привязка Контроллер Базовый класс CategoryListMixin Собственно контроллер главной страницы Шаблон Базовый шаблон Собственно шаблон страницы Оформление Завершающие действия Что дальше? Глава 22. Гостевая книга Защита от спама Приложение Модель Привязки Форма Контроллер Шаблоны Универсальный шаблон вывода сообщений Универсальный шаблон пагинации Шаблон гостевой книги Оформление Завершающие действия Что дальше? Глава 23. Список новостей. Хранилище изображений Собственно список новостей Приложение Модель Привязки Контроллеры Базовые классы Контроллеры списка новостей и отдельной новости Контроллеры для добавления, правки и удаления новости Шаблоны Шаблон списка новостей Шаблон сведений о выбранной новости Шаблоны добавления, правки и удаления новости Оформление Вывод списка новостей на главной странице Заключительные действия Хранилище изображений Где и как хранить изображения? Приложение.' Модель Привязки Контроллеры Принципы работы хранилища изображений Контроллер, формирующий список файлов Контроллеры, сохраняющие и удаляющие файл Шаблоны Универсальный шаблон хранилища изображений Исправленные шаблоны добавления и правки новости Оформление; Web-сценарий Что дальше? Глава 24. Список категорий товаров Приложение Модель Привязки Контроллер Шаблоны Универсальный шаблон набора форм v Шаблон страницы списка категорий Оформление Завершающие действия Что дальше? Глава 25. Список товаров Приложение Модели Привязки Форма Контроллеры Базовые классы Контроллер списка товаров Контроллер сведений о товаре Контроллер добавления товара Контроллер правки товара Контроллер удаления товара Шаблоны Универсальный шаблон списка комментариев Исправленный универсальный шаблон пагинации Шаблон списка товаров Шаблон сведений о товаре Шаблоны добавления, правки и удаления товара Шаблон почтового уведомления, Оформление Вывод списка рекомендуемых товаров на главной странице Вывод списка категорий в составе панели навигации Что дальше? Глава 26. Блог Приложение Модель Привязки: Форма Контроллеры Базовые классы Контроллер списка статей Контроллер содержимого отдельной статьи Контроллер добавления статьи Контроллер правки статьи Контроллер удаления статьи Шаблоны Исправленный универсальный шаблон пагинации Шаблон списка статей Шаблон отдельной статьи Шаблон добавления статьи Шаблон правки статьи Шаблон удаления статьи Исправленный шаблон почтового уведомления Оформление Заключительные действия Что дальше? Глава 27. Остальные страницы сайта Приложения Привязки Контроллеры Шаблоны Заключительные действия Что дальше? Часть VII. Прочие возможности python и Django. Публикация готового Web-сайта Глава 28. Генерирование каналов новостей RSS и Atom Простейший генератор каналов новостей Введение в генераторы каналов новостей Создание контроллера-генератора новостей Формирование сведений о самом канале новостей Формирование отдельных позиций канала Вывод гиперссылки на канал новостей Более сложный генератор каналов новостей Одновременное формирование каналов в форматах RSS и Atom Генераторы каналов для сайта «Веник-Торг» Генератор канала новостей сайта Привязки Контроллеры Шаблон Заключительные действия Генератор канала товаров Привязки Контроллеры Шаблоны Что дальше? Глава 29. Рассылка электронной почты Разовая отправка электронного письма Массовая рассылка электронных писем Отправка письма модераторам и администраторам сайта Система рассылки уведомлений для сайта «Веник-Торг» Модель Контроллеры Контроллер ContactsView Контроллер NewCreate Шаблон Что дальше? Глава 30. Журналирование Отладка Django-сайтов Подсистема журналирования Django Настройки журналирования Вывод в журнал произвольной информации Что дальше? Глава 31. Настройка встроенного административного сайта Django Администратор модели Настройка страниц списков записей j Настройки вывода записей Настройки фильтрации и сортировки записей Настройки правки записей Настройка страниц добавления и правки записей Настройка выводимых полей Группировка полей Вывод связанных записей Прочие настройки Что дальше? Глава 32. Публикация Web-сайта Подготовка сайта к публикации Удаление временных и ненужных файлов Правка кода приложений и указание целевого домена Внесение изменений в настройки сайта Создание страниц сообщений об ошибках Публикация сайта Публикация сайта на нашем собственном компьютере Публикация сайта на сервере стороннего хостинг-провайдера Использование баз данных других форматов Использование баз данных MySQL Использование баз данных PostgreSQL Заключение Приложение 1. Установка программной среды языка Python и дополнительных библиотек Установка Python Установка сторонних библиотек Список необходимых библиотек Django Setuptools Pytz Pillow easy-thumbnails django-taggit django-precise-bbcode Psycopg Приложение 2. Описание электронного архива Предметный указатель