Django — Книга по Django


Содержание

Ещё один блог сисадмина

воскресенье, 2 июля 2020 г.

Краткий учебник по Django

О терминологии веб-фреймворка Django

  • Проект — совокупность приложений, имеющих общие настройки.
  • Приложение — часть проекта, выполняющая определённую логически неделимую функцию. Состоит из представлений (views), шаблонов (templates) и моделей (models).
  • Шаблон — шаблон HTML-страницы. В терминологии MVC шаблону соответствует представление.
  • Модель — средство доступа к данным.
  • Представление — связующий код между моделью и шаблоном. В терминологии MVC представлению соответствует контроллеру.
  • Маршрут — соответствие между URL’ом и представлением (контроллером в терминологии MVC), отвечающим за этот URL.

Программы, написанные с использованием Django, являются совокупностью отдельных приложений, объединённых в один проект. В отличие от многих других веб-фреймворков, в Django не используется архитектура MVC — Модель-Представление-Контроллер, вместо неё используется собственная архитектура MVT — Модель-Представление-Шаблон. Шаблон Django по функциям ближе всего к представлению в MVC, а представление Django по функциям ближе всего к контроллеру в MVC. Представления Django привязываются к определённому URL через маршруты.

Установка Python и Django

Создание проекта и приложения

Создание представления

Создадим новое представление hello в приложении app. Представление принимает в качестве аргумента объект HttpRequest и возвращает объект HttpResponse.

Откроем для редактирования файл app/views.py и придадим ему следующий вид:

Создание маршрута

Теперь настроим маршрут, вызывающий это представление для url. Для этого откроем файл dj/urls.py и добавим в него пару строчек.

Первую строчку добавим в начало файла, после других строчек импорта. Строчка импортирует представление hello из приложения app:
Теперь найдём функцию patterns, возвращаемое значение которой присваивается переменной urlpatterns, и впишем в аргументы функции следующую строчку:
В итоге у меня содержимое файла dj/urls.py приняло следующий вид:
В шаблоне url в конце обязательно должна быть косая черта, т.к. если клиент запросит страницу без косой черты в конце, Django автоматически добавит её и попытается найти представление, соответствующее этому URL. Нужно ли добавлять косую черту, регулируется настройкой APPEND_SLASH. Если установить её в False, то косая черта добавляться не будет. Шаблоном для корня сайта является ‘^$’, то есть соответствие пустой строке.

Включение приложения в проекте

Запуск сервера разработчика

Использование шаблонов

Для начала настроим каталог, в котором будут находиться шаблоны. Для этого отредактируем файл dj/settings.py и впишем в кортеж TEMPLATES_DIRS полный путь к каталогу с шаблонами.

После редактирования файла эта настройка в файле settings.py приняла следующий вид:
Не забывайте в конце одноэлементного кортежа поставить запятую, чтобы Python мог отличить кортеж от простого выражения в скобках.

Теперь создадим каталог для шаблонов:
И создадим в нём новый шаблон с именем time.tmpl и со следующим содержимым:
Теперь добавим в файл app/views.py импорт функции для загрузки и отрисовки шаблона:
И создадим представление current_datetime следующим образом:
Осталось настроить в файле urls.py маршрут к этому представлению:
Если сейчас попробовать открыть страницу http://localhost:800/time/, то можно увидеть текущее время на английском языке в часовом поясе Гринвичской обсерватории.

Настройка часового пояса и языка

Пример более сложного маршрута

Попробуем добавить страницы, которые будут вычитать из текущего времени часы, фигурирующие в URL запрошенной страницы. Для этого в файл dj/urls.py добавим маршруты:
В каталоге с шаблонами templates разместим два новых шаблона.

Файл templates/time_minus.tmpl со следующим содержимым:
Файл templates/time_plus.tmpl со следующим содержимым:
В файл app/views.py пропишем два представления, которые будут использовать два новых шаблона:
Файл app/views.py целиком примет следующий вид:
Теперь можно перейти по ссылкам http://localhost:8000/time/plus/1 или http://localhost:8000/time/plus/2 и увидеть получающиеся страницы.

Более сложные шаблоны

Условие:
Условие с двумя вариантами:
Ложным значениями являются: пустой список [], пустой кортеж (), пустой словарь <>, ноль — 0, объект None и объект False.

Можно использовать сочетания условий при помощи and и or, причём and имеет более высокий приоритет. Скобки в условиях не поддерживаются, без них можно обойтись с помощью вложенных условий. Также возможно использовать операторы ==, !=, , >=, Автор: morbo на 13:00

Alexander Borshak

14 марта 2020 г.

Хорошие книги по Django

Сейчас есть много книг по Django — в основном, правда, англоязычных.

Но чтобы хороших, и для начинающих — таких 2.

Это неофициальное, 3-е издание книги Адриана Головатого и Джейкоба Каплан-Мосса, разработчиков Django. Данное (т.е. 3-е) издание книги написано уже сторонним автором, но в основе лежит превосходный материал оригинальной книги. Глава за главой объясняется, как работает фреймворк, как та или иная задача выполняется без фреймворка, затем постепенно вносятся улучшения в алгоритм, и через несколько итераций выполнение приводится к тому, как оно работает в Django. Это дает отличный фундамент для дальнейшей работы.

В книге рассмотрена версия Django 1.8 LTS (то есть версия с длительным термином поддержки). На сайте книга доступна как в виде отдельных глав, так и в виде PDF для свободного скачивания (но в PDF только первые 13 глав, остальные — а их больше 20 — можно прочитать только онлайн. Язык — английский.

Тоже очень качественный материал, который отлично дополняет книгу, что указана первой. В этом материале рассмотрена версия Django 1.7, но там отличия с версией 1.8 минимальные.

Кстати, есть перевод этого материала на русский. В онлайн он доступен, к примеру, вот здесь; но если эта ссылка перестанет работать, то есть и актуальная версия от переводчика на GitHub, правда для просмотра ее надо конвертировать в HTML. В любом случае — огромное спасибо Максиму Джангирову за его труд по переводу.

Подборка практических и обучающих материалов по Python и Django для начинающих

Мы перевели для вас статью, которая будет полезна для начинающих Python/Django разработчиков. Вам не обязательно проходить каждый курс полностью. Лучше начинать с самых простых уроков и практики. И еще один важный совет: всякий раз, когда вы изучаете новый тип данных, класс или функцию, не забудьте проверить официальную документацию. В один прекрасный день вам не понадобится ничего, кроме нее.

Итак, вот что мы рекомендуем начинающим разработчикам:

Теория Python

Книги

Онлайн учебники

  • Codecademy — это действительно хорошее место, чтобы начать учиться с нуля. Но после обновления обучающих программ, задания стали слишком простыми. Еще одним недостатком является небольшое количество инструкций по Django;
  • Coursera — замечательный ресурс, где вы будете работать с кодом на регулярной основе. Но, если начинаете курс новичка, вам следует подождать (иногда несколько недель) начала расширенных тем;
  • Tutorialspoint — лучше всего описывать, как упрощенную версию официальной документации. Здесь вы можете найти описание большинства базовых понятий, ключевых терминов и некоторых встроенных библиотек. Описание краткое и четкое. Для большинства новичков это отличный вариант, но это не то место, где стоит начинать с нуля;
  • SoloLearn — предлагает набор мобильных обучающих программ, включая Python. Действительно приятные курсы для тех, кто не может заснуть без серфинга с мобильного телефона. Теоретическая часть хороша, однако практические задачи иногда кажутся труднопреодолимыми. Некоторые примеры еще сложнее и не помогут вам в реальной ситуации. Большая часть приложения — это простые тесты.
Цукерберг рекомендует:  Android - Совет в разработке приложения Android.

Теория Django

  • Tango with Django — руководство для начинающих по Django и веб-разработке в целом. Существует несколько частей книги для разных версий Django, начиная от версии 1.5 до более новых версий, таких как 1.9 и 1.10;
  • Djangobook — несмотря на простоту официальной документации Django, эта книга является отличным пошаговым руководством. Она основана на версии Django 1.8 LTS. Книга находится где-то между упрощенной версией официальной документации и пошаговым руководством по созданию вашего первого веб-приложения на Django;
  • «The Definitive Guide to Django: Web Development Done Right» — книга Джейкоба Каплан-Мосса, Адриана Холоваты. В ней описывается устаревшая версия Django 1.1, однако она затрагивает все основные понятия, и вы сможете найти ответ на любой вопрос, связанный с Django. Являясь одним из создателей Django, он описывает материал в ясной и простой форме.

После обретения уверености в фундаментальных принципах Django, обязательно посетите эти ресурсы:

Дополнительные книги

Когда вы ознакомитесь с основами, мы рекомендуем прочитать следующие книги:

Django. Подробное руководство

О книге

Описание

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

Книга отлично подходит для изучения разработки интернет-ресурсов на Django — от основ до таких специальных тем, как генерация PDF и RSS, безопасность, кэширование и интернационализация. Издание ориентировано на тех, кто уже имеет навыки программирования на языке Python и знаком с основными принципами веб-разработки.

Книги по Django на русском языке

Актуальные книги по Django, которые стоит изучить

Подборка лучшей учебной литературы по Django framework для начинающих и опытных пользователей. Справочники по свежим версиям фреймворка (Django 2.2 и более актуальные).

Django – фреймворк для веб-приложений на Python.

Здесь можно скачать лучшие книги Django бесплатно для ознакомления, почитать онлайн или купить полную электронную версию в форматах FB2, PDF, EPUB, TXT, DOC, MOBI.

Только легальный контент от правообладателей!

Смотрите также подборки книг по темам:

Часть 0: Введение и начальная настройка

Этот раздел является первой технической частью пособия и касается обобщенных инструментов, а также настройке окружения перед началом разработки.


Введение

Это первый технический раздел современного учебника по Django. Здесь мы рассмотрим настройку, установку и создание Django проекта. Мы также создадим GitHub репозиторий для этого проекта.

Я действительно хочу, чтобы это пособие, особенно эта вводная часть, устранило барьер для входа в разработку на Django, поэтому извините за подробное объяснение различных инструментов для работы, которые многие посчитают базовыми и не требующими объяснений. Проблема, с которой сталкиваются многие новые разработчики заключается в том, что они не знакомы со стандартами и лучшими практиками настройки проекта. Подробное объяснение поможет им эффективно создавать и изменять Django проекты.

Замечание: Я хочу сразу отметить, что разрабатываю на ОС MacOS Sierra. Таким образом, это пособие ориентировано на пользователей, использующих компьютеры с ОС, соответствующих стандарту POSIX (определение POSIX операционных систем можно найти здесь). Мы будем придерживаться современных условных обозначений и готовых инструментов. Поддержка многих программ, необходимых для запуска современных веб-приложений в Windows — это совершенно другая тема. Если Вы не работаете в магазине Microsoft и можете установить другую ОС кроме Windows, я призываю Вас установить любую POSIX -совместимую систему на Ваш вкус (MacOS, Ubuntu, Debian, Arch и т. д.) и освоить редактор, доступный из терминала. Это не только пополнит Ваши навыки разработчика, но и облегчит Вам работу в дальнейшем.

Примечание переводчика. Если Вы не хотите ставить ОС Linux в качестве второй ОС, можно воспользоваться виртуальной машиной, например, Oracle VM VirtualBox, и установить Ubuntu или другую ОС на неё.

Используемые технологии

  • Python 3: «Python — используемый во многих областях язык высокого уровняобщего назначения, созданный Гвидо ван Россумом в 1991 году. Являясь интерпретируемым языком, Python имеет свою философию проектирования, в которой особое значение уделяется читаемости кода (в частности, использование отступов для выделения блоков кода вместо фигурных скобок или ключевых слов) и синтаксису, который позволяет программисту реализовывать алгоритмы, используя намного меньшее количество строк кода по сравнению с такими языками как С++ или Java. Язык предоставляет конструкции, позволяющие писать понятные программы не зависимо от их размера [24]». (источник)
  • pip: «рекомендуемый PyPA инструмент для установки Python пакетов» (источник). Используйте pip для управления Python пакетами в системе или внутри включенного виртуального окружения.
  • Virtualenv: «Инструмент для создания изолированных Python окружений» (источник). Мы будем использовать virtualenv для создания окружения, которое будет изолировано от версии Python, установленной в операционной системе.
  • Django: «Django — это высокоуровневый веб-фреймворк на языке Python, который способствует быстрой разработке и четкому, прагматичному проектированию» (источник). Мы установим Django, используя pip.
  • Git: «Система управления версиями (СУВ) отслеживающая изменения в файлах на компьютере и координирующая работу над этими файлами между несколькими пользователями» (источник).
  • GitHub: веб-версия Git или хранилище с системой управления версиями и сервис для интернет-хостинга. Он предоставляет все функции распределенной системы управления версиями и управления исходным кодом (SCM) Git, а также добавляет свои собственные функции. Он обеспечивает управление доступом и несколько функций для совместной работы, включая отслеживание ошибок, запросов на добавление новых функций, управление задачами и ведение документации для каждого проекта [3]» (источник).

Другими используемыми технологиями являются любой, на Ваш выбор эмулятор терминала и текстовый редактор. Я буду использовать iTerm и Sublime Text 3, но Вы можете использовать то, с чем Вам удобно работать.

Подробное пошаговое руководство

Установка

Замечание: Сейчас мы установим базовые инструменты, необходимые для запуска Django проекта. У многих из Вас эти инструменты могут быть уже установлены, поэтому Вы можете пропустить этот раздел. Тем не менее данный раздел необходим для новых пользователей, которые не видели или не использовали эти инструменты. Некоторые пользователи могут даже не знать, что в определенных операционных системах может уже быть установлен Python.

Также отметим, что приведенные ниже команды могут немного отличаться от подобных команд других операционных систем, основанных на POSIX. Например, python вместо python3 и pip вместо pip3 . Это связано с тем, что в MacOS по умолчанию установлена версия Python 2.7 и установка третьей версии Python приводит к появлению этих новых команд, используемых в терминале.

1. Установка Python

Будем считать, что мы только что установили MacOS Sierra (или другую операционную систему), поэтому теперь необходимо поставить Python 3. Для этого воспользуйтесь инструкциями, приведенными на странице загрузки Python Software Foundations. Текущая версия Python — 3.6.0.

При правильной установке Вы сможете проверить в терминале версию Python следующим образом:

Опять отметим, что это не версия Python, установленная по умолчанию, поскольку по умолчанию в MacOS Sierra установлена версия Python 2.7.

2. Устанавливаем Pip

В комплект поставки Python входит утилита pip. Для вышеприведенной установки Python 3, она будет называться pip3 (версия pip для Python 3). Проверьте, что она установлена, введя в терминале следующую команду:

3. Устанавливаем Virtualenv

Дополнение от 23/02/2020: Дополнить эту часть предложил пользователь Reddit Godof в этом комментарии. Он указал, что скрипт под названием ‘venv’ входит в состав Python 3. Этот скрипт позволяет создать виртуальное окружение, однако он не содержит всех функций, предоставляемых инструментом virtualenv . Скрипт вызывается следующим образом:

Проведя некоторые исследования, я считаю, что данный скрипт не является глобальным стандартом, поэтому в дальнейшем рассматривается установка/использование virtualenv.

После установки pip, нужно установить virtualenv . Запустите приведенную ниже команду:

Некоторым пользователям для установки virtualenv необходимо использовать sudo (возможность запуска команд от имени другого пользователя, в данном случае — от суперпользователя), как показано ниже:

4. Устанавливаем git

В большинстве операционных систем (совместимых с POSIX — прим. переводчика) уже установлен git . Тем не менее, важно проверить, что установлена последняя версия git и если это не так — мы можем обновить его, используя приведенную ниже ссылку.

5. Создаем и клонируем GitHub репозиторий

Мы будем работать с GitHub через веб-интерфейс , тем не менее новый репозиторий можно легко создать из терминала. Для этого и чтобы настроить другие , связанные с GitHub SSH инструменты, воспользуйтесь официальной документацией.

Цукерберг рекомендует:  Angularjs - какой фрэймворк JS выучить первым

Для начала войдите в GitHub (или создайте там аккаунт) и создайте новый репозиторий. Так выглядит форма при создании нового репозитория на GitHub

Мы заполним следующие поля:

  • название репозитория: modern-django
  • описание репозитория: Modern Django: A Guide on How to Deploy Django-based Web Applications in 2020 (Современный учебник по Django: Пособие по развертыванию веб приложений на Django в 2020 году)
  • Доступность — Public (публичный репозиторий)
  • устанавливаем галочку напротив «Initialize with a markdown file called README» (Создать репозиторий вместе c файлом README, использующим облегченный язык разметки)
  • Добавляем файл .gitignore стандартный для проектов на языке Python, это позволит не включать лишние, ненужные файлы в репозиторий, когда git проверяет каталог в поисках изменений
  • Добавляем лицензию MIT или выбираем подходящую для Вашего проекта. Информацию о различных лицензиях можно найти здесь.

Теперь, когда репозиторий создан, нажмите на кнопку Clone or download и скопируйте команду в буфер обмена.

Пример ссылки для клонирования репозитория. Вместо ‘djstein’ будет отображаться Ваше имя пользователя в GitHub

Замечание: Кроме того, Вы можете изменить URL, если хотите использовать Ваш GitHub SSH ключ, нажав на ссылку «Use SSH» (Использовать SSH). Для этого Вы должны настроить SSH инструменты, как было описано выше. Для настройки связанных с GitHub SSH инструментов, воспользуйтесь официальной документацией.

После того как Вы скопировали ссылку (или если Вы хотите, можете ввести её вручную), в окне терминала перейдите в Ваш домашний каталог, создайте папку с названием git (если она ещё не создана), перейдите в неё, а затем используйте команду git clone для клонирования репозитория. Ниже приведены команды, позволяющие это сделать:

Замечание: использовать название ‘git’ в качестве названия каталога — это моё личное предпочтение, я храню в ней любые git проекты, размещенные на различных сервисах (GitHub, BitBucket и т. д.). Поэтому этот проект можно сохранить в любом каталоге. Вот здесь обсуждается использование каталога /srv для POSIX-совместимых систем. Ваш проект почти всегда будет находится в другом месте во время продакшена (подробнее об этом позднее).

6. Создаем virtualenv и устанавливаем Django

Предполагая, что репозиторий был склонирован, мы можем перейти в него. Убедившись, что мы находимся в правильном каталоге, создайте файл requirements.txt . Затем добавьте последнюю версию Django в файл, которую установит pip . Мы покажем как добавить в файл информацию через терминальную команду echo , но Вы всегда можете добавить что-то в файл через любой текстовый редактор.

Замечание: В файле requirements.txt мы будем хранить зависимости нашего проекта. Поэтому всегда важно указывать версию инструмента, которую мы хотим установить, иначе при воссоздании проекта на другой машине зависимости могут быть обновлены до последних версий. Это может привести к большим отличиям между окружениями, в которой проект создавался и в которой воссоздается.

После настройки requirements.txt , мы создадим virtualenv для нашей локальной среды разработки на языке Python. Это позволит отделить Python инструменты , которые нам необходимы для разработки нашего веб-приложения от тех, которые доступны в операционной системе.

В приведенной ниже команде, ключ -p позволяет нам указать версию Python (версию Python 3), а строка venv — это каталог, в которой будет находится наше виртуальное окружение.

Замечание: благодаря стандартному файлу .gitignore для Python при инициализации с помощью GitHub, каталог venv не будет добавляться в структуру проекта при осуществлении коммитов. Это сделано специально! При переходе в другое окружение, Вы просто создадите новое виртуальное окружение с помощью вышеприведенных команд.

Когда Вы захотите вернуться к Python окружению операционной системы, просто используйте команду deactivate . Это удалит (venv) в начале каждой новой строки в терминале.

Убедитесь, в том, что в виртуальном окружении по умолчанию используется Python 3.

Замечание: Пользователи MacOS должны заметить, что теперь используется стандартная команда python (а не python3 -прим. переводчика) так же, как при стандартной установке Python на других POSIX системах.

После создания виртуального окружения и убедившись, что используется версия Python 3.6, необходимо активировать окружение и установить Django. После активации virtualenv , Вы заметите строку (venv) в начале каждой строки приглашения для ввода в терминале. Это помогает обозначить какое окружение используется в терминале.

Флаги для команды pip install :

  • U : означает Upgrate — обновить все существующие пакеты до указанных версий или если версия не указана до последней доступной стабильной сборки
  • r : означает установку всех инструментов из файла по указанному пути, в данном случае файл requirements.txt в текущем каталоге

7. Создаём Django проект

Предполагая, что виртуальное окружение до сих пор активировано, теперь мы можем создать исходный проект на Django. Вы можете выбрать любое название для проекта, но в этом пособии в качестве названия будет использоваться слово ‘config’. Использование такого обобщенного названия поможет продемонстрировать структуру стандартного Django проекта.

Обновление от 24/02/2020: я решил изменить название проекта с project на config , чтобы показать, что по существу он содержит общие настройки, основные Url и wsgi.py . Кроме того создание проекта в текущем каталоге позволяет уменьшить количество уровней в структуре каталогов. Я планировал сделать это вручную, но решил, что читателям данного пособия будет намного проще, если я перепишу приведенную ниже команду:

Никакого вывода в терминал не последует, но в каталоге modern-django появится каталог config , его содержимое и файл manage.py . Если Вы воспользуетесь командой ls (справка по ls), Вы увидите содержимое Вашего нового Django проекта, с которым можно начинать работать.

Флаги для команды ls:

  • l: расширенный формат отображения, выдаются типы файла Unix, права доступа к файлу, количество жестких ссылок на файл, имя владельца файла/каталога, имя группы, размер, дата последней модификации и имя файла/каталога.
  • a: отображаются файлы, начинающиеся с точки (скрытые файлы — прим. переводчика).

8. Фиксация изменений (commiting) и отправка их на удаленный сервер (pushing)

Теперь, когда исходный проект создан, пора отправить его в удаленный GitHub репозиторий.

Сначала проверьте какие файлы изменились по сравнению с файлами, находящимися в удаленном репозитории с помощью команды git status :

Добавьте каталог config , файлы manage.py и requirements.txt к отслеживаемым файлам:

Опять воспользуйтесь командой git status , чтобы проверить какие файлы теперь отслеживаются и изменения в которых должны быть зафиксированы.

Самое время зафиксировать изменения в этих файлах. При фиксировании изменений важно добавить сообщение о сделанных изменениях. Флаг -m позволяет добавить сообщение, используя команду git commit .

В последний раз выполните команду git status, чтобы убедиться, что Ваша локальная ветка находится впереди ветки master удаленного репозитория.

Наконец отправьте изменения в Ваш GitHub репозиторий!

Замечание: Возможно Вам придется ввести пароль к Вашему GitHub аккаунту, если Вы не настраивали SSH ключи и клонировали через SSH URL как описано выше.

Поздравляем! Исходный проект Django был создан и отправлен в удаленный репозиторий. Это первый важный шаг при разработке современного приложения на Django.

Выводы

В этой части мы кратко рассмотрели следующие технологии (и их использование в терминале): Python, pip, virtualenv, Django, git и GitHub. Мы также показали как использовать команды sudo и ls .

Наш Django проект наконец создан и можно начинать его разрабатывать!

В следующий раз мы изменим структуру проекта, улучшив его, например, добавив в settings.py настройки для локального окружения и окружения во время разработки.


Весь исходный код на GitHub доступен по этой ссылке. Если вы ходите отслеживать за изменениями репозитория, используйте кнопки Watch и Star.

Как обычно, если у Вас возникли проблемы или вопросы — сообщите мне, используя комментарии или по почте и я с удовольствием обновлю пособие. Это также касается любых непонятных моментов, которые по Вашему мнению нужно более подробно объяснить.

Антонио Меле — » Django 2 в примерах «

Рейтинг: 3,50 / 5 (оценок: 4 )

ДМК Пресс , 2020 год, 408 страниц

Django — это мощный Рython-фреймворк для веб-приложений, который поощряет быстрое развитие и чистый, прагматичный дизайн, предлагает относительно простое обучение. Это делает его привлекательным как для новичков, так и для опытных разработчиков. В рамках данной книги вы пройдете весь путь создания полноценных веб-приложений с помощью Django.

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

После прочтения этой книги у вас будет понимание того, как работает Django, как создавать практичные веб-приложения и расширять их с помощью дополнительных инструментов. Издание будет полезно всем разработчикам приложений.

Цукерберг рекомендует:  Работа с Chart.js Первое знакомство

Блог на Django #1: Установка Django 2.0

Если Django уже установлен, можете пропустить этот раздел и переходить к части «Создание первого проекта». Django — это пакет Python, поэтому он может быть установлен в любой среде Python. Вот как установить фреймворк для локальной разработки.
Для Django 2.0 обязательны Python 3.4 или старше. Дальше будет использоваться Python 3.6.5. Для Linux или macOS, то Python, вероятно уже установлен. Если Windows — то инструкция по установке здесь.

Проверить установлен ли Python на компьютере можно, введя python в командной строке. Если в ответ отобразится что-то подобное, то Python установлен:

Если он не установлен или установлена версия Python 3.4 или младше, то нужно перейти в раздел “Скачать и установить Python”, найти руководство под свою OS и следовать инструкциям.

Для Python 3 не нужна база данных. Эта версия Python поставляется со встроенной базой данных SQLite. Это облегченная база данных, которая подходит для разработки на Django. Если же нужно будет разворачивать приложение в производственной среде, то понадобится более продвинутое решение: PostgreSQL, MySQL или Oracle. Больше узнать о том, как заставить базу данных работать с Django, можно по этой ссылке: https://docs.djangoproject.com/en/2.0/topics/install/#database-installation.

Создание виртуальной среды Python

Рекомендуется использовать virtualenv для создания виртуальной среды Python так, чтобы можно было спокойно использовать разные версии пакетов для разных проектов. Это практичнее, чем устанавливать пакеты в Python напрямую в систему. Еще одно преимущество virtualenv — для установки пакетов Python не нужны права администратора. Запустите следующую команду в командной строке для установки virtualenv :

После установки virtualenv , создайте виртуальную среду с помощью следующей команды:

Это создаст папку my_env вместе со средой Python. Любые библиотеки Python, установленные с активированной виртуальной средой Python, будут установлены в папку my_env/lib/python3.7/site-packages .

Если в системе была предустановлена Python 2.X, а вы установили Python 3.X, то нужно указать virtualenv , чтобы он работал с последней версией.

Можно указать путь, по которому установлен Python 3 и использовать его для создания виртуальной среды с помощью следующих команд:

Используйте следующую команду для активации виртуальной среды:

Загрузка файлов в Django | Создание загрузочной формы

В данном руководстве показано, как реализовать загрузку файлов с Django. Для этого создадим простой клон Instagram, который будет работать с изображениями.

Содержание

Установка Django в Python 3

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

Откройте командную строку и создайте директорию insta для хранения файлов. Для установки как Django, так и Pillow мы будем использовать Pipenv . Pillow является библиотекой для обработки изображений. Для загрузки других типов файлов Pillow не понадобится.

Активируем новую виртуальную среду:

Об активации виртуальной среды сообщит изменение в (insta) . Вы также можете в любое время ввести команду exit для выхода и pipenv shell для повторного входа.

Создание проекта и приложения в Django

Создадим новый проект Django под названием insta_project и новое приложение, которое назовем posts .

Так как мы добавили новое приложение, мы должны сообщить об этом Django в нижней части конфигурации INSTALLED_APPS в settings.py .

Теперь запускаем python manage.py migrate для установки базы данных нового проекта.

Создаем модели в Django

Лучше всего начинать с модели базы данных. В нашем случае у модели Post будет только два поля: title и cover . Ниже мы также добавим метод __str__() , чтобы title отобразился в интерфейсе администратора Django.

Местоположение загружаемых файлов image будет в MEDIA_ROOT/images . В Django локацией для MEDIA_ROOT по умолчанию является папка, откуда будут загружаться все файлы пользователя.

В случае, когда вместо изображения требуется загрузить другой файл, нужно просто поменять ImageField на FileField .

Настройка MEDIA_ROOT в Django 2

Откройте insta_project/settings.py в вашем текстовом редакторе. Нам потребуется добавить две новые конфигурации. По умолчанию MEDIA_URL и MEDIA_ROOT являются пустыми и не отображаются на экране, поэтому их необходимо настроить:

  • MEDIA_ROOT является путем файловой системы, куда пользователи будут загружать файлы;
  • MEDIA_URL представляет собой URL, который мы можем использовать в шаблонах для файлов.

Название media использовать не обязательно, можно выбрать любое, просто в Django media используется по умолчанию. Мы также создаем папку images внутри для простоты навигации.

Панель администратора (админка) в Django

Сейчас мы обновим файл posts/admin.py , после чего в Django появится возможность использовать приложение Post от имени администратора.

Все настроено! Генерируем новый файл миграции.

Теперь запускаем migrate для обновления базы данных.

Теперь можно создать аккаунт superuser для доступа к интерфейсу администратора, после чего выполнить runserver для первого запуска локального веб-сервера:

Если набрать в адресной строке браузера http://127.0.0.1:8000/admin , появится возможность зайти в админку Django. Вы будете направлены на следующую страницу:

Нажмите на + Add возле Posts . Здесь можно добавить все, что хотите, однако в данном руководстве мы создаем запись с изображением талисмана Django — пони.

Скачать картинку можно тут Django Pony.

После нажатия «Save» вы будете перенаправлены на страницу Posts , где расположены все имеющиеся записи.

Теперь если вы загляните в папку media в вашем проекте, то увидите, что в директории images появилось изображение djangopony.png . Как и было сказано ранее, MEDIA_URL нужен именно для этого.

Итак, с основами мы разобрались. Теперь разберемся с тем, как отображать записи, использовать urls.py , views.py и шаблоны файлов.

Настройка urls.py в Django

Аспектом работы с Django, который может несколько запутать, является тот факт, что зачастую для одной веб-страницы требуется 4 разных, но взаимосвязанных файла: models.py , urls.py , views.py и html-шаблоны. Здесь мы будем разбирать понятия в следующем порядке: модели (models) -> urls -> представления (views) -> шаблоны (templates). С моделью мы уже разобрались, так что перейдем к URL.

Нам понадобятся обновить файл urls.py . Вначале на проектном уровне insta_project/urls.py мы добавим импорты для settings , include и static .

После этого мы определим путь для приложения posts . Стоит отметить, что если настройки в режиме DEBUG , то MEDIA_URL также нужно добавить. В противном случае не получится увидеть загружаемые изображения.

Django

Справочник по WEB-фреймворку Django, написанному на python. Уже существует документация и книги для Django, поэтому здесь будет только справочная информация (конфиги, кусочки скриптов).

Содержание

Начало работы [ править ]

Установка django [ править ]

В Mandriva : urpmi python-django

В Fedora и CentOS: yum install Django

В Debian и Ubuntu : sudo apt-get install python-django

В Gentoo : emerge -v dev-python/django

В Arch Linux : sudo pacman -S python-django

В ALT Linux : apt-get install python-module-django

В openSUSE 11.3 посложней: sudo zypper ar http://download.opensuse.org/repositories/devel:/languages:/python/openSUSE_11.3/ python
sudo zypper mr -r python
sudo zypper in python-django

В FreeBSD: cd /usr/ports/www/py-django && make install clean

Создание проекта [ править ]

Проект в django может быть самостоятельным приложением, но в большой степени это просто структура директорий и настройки общие для всех приложений внутри. А приложение — это как раз код, который выполняется.

django-admin.py startproject newproj , или django-admin startproject newproj , в зависимости от системы

Создаётся структура вида:

Создать приложение можно с помощью команды: python manage.py startapp newapp

Создаётся структура вида:

Запуск проекта [ править ]

Перед запуском надо записать изменения в базу данных (если она используется): python manage.py syncdb

Также можно проверить на ошибки: python manage.py validate

Запустить проект: python manage.py runserver

Установка на Web-сервер [ править ]

Запуск Lighttpd + FastCGI [ править ]

Система Fedora 10. Софт, который нужен: lighttpd lighttpd-fastcgi django

Установка: yum install django lighttpd lighttpd-fastcgi (Debian: aptitude install lighttpd python-django)

Проект в /tmp/mysite , типичный проект Django с приложением books и шаблонами.

Настройка [ править ]
Запуск [ править ]

[mapcuk@fabrica-35 tmp]$ python /tmp/mysite/manage.py runfcgi socket=/tmp/mysite.sock

Проверка [ править ]

Запустился ли fast-cgi сервер

Внимание файл /tmp/mysite.sock должен быть разрешен для чтения и записи пользователю, от которого запущен lighttpd (обычно тоже lighttpd)

Проверяем работу приложения

В строку адреса браузера вводим http://127.0.0.1/search/ Должна показаться страница поиска.

Описание процесса [ править ]

Lighttpd получает запрос от клиента (http://127.0.0.1/search/) отправляет запрос к FastCGI (процессу ‘python ./mysite/manage.py runfcgi’) через сокет /tmp/mysite.sock, получает ответ и отдаёт клиенту.

Остальные опции можно получить по команде:

Последние 2 параметра удобны для поиска ошибок.

Запуск httpd + mod_python [ править ]

Конфиг /etc/httpd/conf.d/python.conf который потом вставляется в общий httpd.conf

Надо проверить что в /etc/httpd/conf/httpd.conf есть строчка Include conf.d/*.conf

Можно обращаться по адресу http://localhost:8080/django/search/ выдаётся страница поиска.

Внимание: mod_python морально устарел

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих