С данной статьи мы начинаем большой курс по написанию собственного сайта на Django. Для начала познакомимся с данным фреймворком, установим и проверим работоспособность отладочного веб-сервера.
Django — это программный каркас с богатыми возможностями, подходящий для разработки сложных сайтов и веб-приложений, написанный на языке программирования Python.
Django — свободный фреймворк для веб-приложений на языке Python, использующий шаблон проектирования MVC. Проект поддерживается организацией Django Software Foundation.
Model-View-Controller (MVC, «Модель-Представление-Контроллер», «Модель-Вид-Контроллер») — схема разделения данных приложения, пользовательского интерфейса и управляющей логики на три отдельных компонента: модель, представление и контроллер — таким образом, что модификация каждого компонента может осуществляться независимо.
Сайт на Django строится из одного или нескольких приложений, которые рекомендуется делать отчуждаемыми и подключаемыми.
Один из основных принципов фреймворка — DRY.
Don’t repeat yourself, DRY (не повторяйся) — это принцип разработки программного обеспечения, нацеленный на снижение повторения информации различного рода, особенно в системах со множеством слоёв абстрагирования.
Django проектировался для работы под управлением Apache (с модулем mod_python) и с использованием PostgreSQL в качестве базы данных.
В настоящее время, помимо PostgreSQL, Django может работать с другими СУБД: MySQL (MariaDB), SQLite, Microsoft SQL Server, DB2, Firebird, SQL Anywhere и Oracle.
Для работы с базой данных Django использует собственный ORM, в котором модель данных описывается классами Python, и по ней генерируется схема базы данных.
Веб-фреймворк Django используется в таких крупных и известных сайтах, как Instagram, Disqus, Mozilla, The Washington Times, Pinterest, lamoda.
Некоторые возможности Django:
ORM, API доступа к БД с поддержкой транзакций;
встроенный интерфейс администратора, с уже имеющимися переводами на многие языки;
диспетчер URL на основе регулярных выражений;
расширяемая система шаблонов с тегами и наследованием;
система кеширования;
интернационализация;
подключаемая архитектура приложений, которые можно устанавливать на любые Django-сайты;
«generic views» — шаблоны функций контроллеров;
авторизация и аутентификация, подключение внешних модулей аутентификации: LDAP, OpenID и прочие;
система фильтров («middleware») для построения дополнительных обработчиков запросов, как например включённые в дистрибутив фильтры для кеширования, сжатия, нормализации URL и поддержки анонимных сессий;
библиотека для работы с формами (наследование, построение форм по существующей модели БД);
встроенная автоматическая документация по тегам шаблонов и моделям данных, доступная через административное приложение.
Установка Django
Начиная с версии Python 3.4, в составе исполняющей среды языка поставляется утилита pip, с помощью которой очень удобно выполнять установку дополнительных библиотек.
Чтобы установить django на компьютер необходимо запустить командную строку (от имени администратора) и ввести команду:
pip install django
Помимо Django, эта команда установит также библиотеку pytz, выполняющую обработку значений даты и времени с учетом временных зон и используемую в фреймворке.
Проект Django
После установки Django необходимо создать новый проект. Проектом называется совокупность всего программного кода, составляющего разрабатываемый сайт.
Физически он представляет собой папку, в котором находятся разнообразные файлы с исходным кодом. Зайдите в командную строку и перейдите в папку, в которой должна находиться папка проекта. В командной строке введите команду:
django-admin startproject projectDjango
Утилита django-admin служит для выполнения разнообразных административных задач. Команда startproject указывает ей создать новый проект с именем, записанным после этой команды.
В папке с проектом будет создана структура файлов. Рассмотрим их подробнее:
manage.py — программный файл с кодом одноименной утилиты, с использованием которой производятся различные действия над самим проектом.
Внутренняя папка projectDjango — формирует пакет языка Python, содержащий модули, которые относятся к проекту целиком и задают его конфигурацию (ключевые настройки). Название этого пакета совпадает с названием проекта и менять его не стоит.
В данном пакете лежат файлы:
__init.py__ — пустой файл, сообщающий Python, что папка, в которой он находится, является полноценным пакетом.
settings.py — модуль с настройками самого проекта. Включает описание конфигурации базы данных проекта, пути ключевых папок, важные параметры, связанные с безопасностью.
urls.py — модуль с маршрутами уровня проекта.
wsgi.py — модуль, связывающий проект с веб-сервером. Используется при публикации готового сайта в Интернете.
asgi.py — модуль предназначенный для обеспечения стандартного интерфейса между асинхронными веб-серверами Python, фреймворками и приложениями.
Проект Django можно поместить в любое место файловой системы компьютера.
Отладочный веб-сервер Django
В состав Django входит отладочный веб-сервер, написанный на языке Python, не требующий сложной настройки и всегда готовый к работе.
Чтобы запустить веб-сервер необходимо запустить командную строку в папке проекта и отдать команду:
manage.py runserver
Здесь мы пользуемся утилитой manage.py, сгенерированной программой django-admin при создании проекта.
Команда runserver запускает отладочный веб-сервер. После выполнения команды в командной строке будет выведено сообщение:
В данном сообщении видно, что сайт доступен по адресу «http://127.0.0.1:8000/» или «http://localhost:8000/». Отладочный сервер по умолчанию работает через TCP-порт 8000 (при необходимости можно использовать другой).
Запустим браузер и наберем адрес нашего сайта. Мы увидим информационную страничку, представленную самим Django с сообщением, что сайт, хоть еще и пуст, но работает:
Остановить отладочный веб-сервер можно, переключившись в экземпляр командной строки, в которой он был запущен, и нажать комбинацию клавиш «Ctrl + Break».
На этом первая статья по фреймворку Django подходит к завершению. Рекомендуем проделать все необходимые настройки и проверить свой проект на работоспособность. В последующих статьях по Django мы будем продолжать создавать наш проект.