Фреймворк Django является популярной средой для web-разработки с открытым исходным кодом на языке программирования Python. Он используется для быстрого и чистого дизайна. Разработчики больше занимаются написанием приложения, а не изобретением «велосипеда».
Django framework – это удобный и многофункциональный web-фреймворк, написанный на Python. Он включает в себя набор компонентов, которые позволяют легко и просто разрабатывать сайты. Каждый раз при написании приложения на Python приходится вводить одинаковые компоненты, например, панель управления сайтов, функционал для загрузки файлов, табличку для регистрации пользователя и пр. Этот фреймворк предлагает уже готовые шаблоны для использования.
Шаблон проектирования Django Python
В архитектуре фреймворка есть три основных компонента:
- Элементы, которые помогают в работе с базой данных.
- Система шаблонов для людей, которые не программируют.
- Фреймворк, который автоматизирует большую часть управления веб-сайтом.
Все это поддается описанию шаблона проектирования Model – View – Template (детально на рис. 1.)
рис.1.Шаблон проектирования Model – View – Template
Любой вызываемый объект языка Python может быть View. Главное требование – запрашиваемый объект должен принимать объект запроса в качестве первого аргумента (этот параметр обычно так и называют Django request). Это говорит о том, что минимальный View будет простым:
from django.http import HttpResponse
def hello_world(request):
return HttpResponse(“Hello, World”)
Язык шаблонов Django разработан для тех, кто уже использует HTML. В языке есть теги, переменные, фильтры и комментарии.
Как работает шаблон:
- Модель (Model) − определяет структуру базы данных.
- Представление (View) − определяет логику, которая возвращает что-то из HTTP-запроса.
- Шаблон (Template) − определяет структуру того, как будет выглядеть веб-страница с текстовой информацией. Ее может прочитать кто-то, кто не обязательно занимается программированием.
Эти составные части помещаются в отдельные файлы, названные в соответствии с их назначением в веб-приложениях Django. Кроме того, может быть преобразователь URL-адресов, который занимается маршрутизацией к определенному представлению для разных конечных точек.
Преимущества программной платформы Django
У фреймворка Django Python 3 есть несколько преимуществ перед платформами:
- Высокая скорость.Настройки софта максимально простые. Вы можете очень быстро начать работу.
- Масштабируемость. Django может удовлетворить потребности в трафике большого проекта.
- Готовые пакеты для загрузки
Разработаны специальные пакеты − помощь по разработке веб-сайта. Их можно использовать для выполнения стандартных задач приложения, таких как аутентификация, администрирование контента или запросы.
- Универсальность платформы. Вы можете использовать его для любых приложений.
- Безопасность применения. Возможные риски нивелируются при помощи встроенных протоколов безопасности Django для подделки межсайтовых запросов, межсайтовых сценариев, кликджекинга и SQL-инъекций.
- Есть оптимизация для SEO. Django упрощает поисковую оптимизацию, поддерживая веб-сайт с помощью URL-адресов, а не IP-адресов.
- Понятная техническая документация
В сети много есть информации о том, как работает Django среда, поэтому понять, что к чему сможет человек даже без технического образования.
Такие компании, как Spotify, Pinterest, National Geographic и Dropbox используют Django в своих бизнес-моделях.
Как поставить Django на Windows и Mac
Рассмотрим быстрые способы Django install на вашем компьютере и планшете.
Для Windows:
- Убедитесь, что у вас установлена Python 2.7.
- Создайте виртуальную среду, перейдя к папке, в которой вы хотите ее создать, и введя:
py -m venv project-name.
- Запустите виртуальную среду:
run project-name\Scripts\activate.bat
Теперь вы увидите «(имя-проекта)» рядом с командной строкой, чтобы указать, что вы находитесь в своей виртуальной среде.
- Установите Django:
py -m pip install Django
- Проверьте установку с помощью django-admin –version
Для Mac:
- Убедитесь, что у вас установлена Python 2.7.
- Установите pip:
Скачайте: curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
Запустите: python3 get-pip.py
- Установите virtualenv:
python3 -m pip install virtualenv
- Перейдите в то место, где вы хотите создать виртуальную среду.
- Создайте virtualenv:
virtualenv <name_of_virtual_env>
- Используйте, cd, чтобы попасть в virtualenv.
- Активируйте virtualenv:
source bin/activate
- Установите Django:
python3 -m pip install Django
Инициализация проекта
Программный комплекс Django представляет собой набор приложений и конфигураций. Следующая команда создаст проект Django в first_project каталоге:
django-admin startproject first_project
Что для этого нужно сделать:
- В командной строке виртуальной среды запустите
django-admin startproject first_project.
Это создает рабочую область, которая инкапсулирует все ваши приложения и ваши файлы конфигурации.
- cd в first_project.
- Запустите
Для Mac:
python2.7 manage.py runserver
Для Windows:
py manage.py runserve
- Откройте
localhost:8000
Это позволит увидеть, что ваша установка сработала. На экране появится ракета.
Кто работать с фреймворком Django
Вот ряд фирм, которые используют на практике Django среду при создании своих программ в Таблице № 1.
Таблица №1. Кто использовал Django для создания своих программ
№ | Программа | Что за приложение |
1 | Популярная социальная сеть. | |
2 | Spotify | Большая медиатека с огромным объемом информации, которая позволяет пользователям слушать музыку бесплатно или по подписке без рекламы. |
3 | The Washington Post | Онлайн-газета. |
4 | Dropbox | Облачная технология для хранения файлов. |
5 | Mozilla | Веб-браузер, который перешел с PHP на Python. Теперь он лучше справляется с огромным трафиком и обращениями API. |
6 | NASA | Используют Django для некоторых функциональных элементов, требующих наибольшей надежности. Их веб-сайт не так популярен, как Instagram, но он обрабатывает изображения с высоким разрешением и в среднем составляет 2 миллиона просмотров в месяц. |
7 | Обрабатывает огромные объемы медиа-данных, но при этом поддерживает удобный интерфейс. | |
8 | Платформа веб-контента, где люди задают вопросы, делятся мнениями и где продвигаются сообщения на основе рейтинговой системы. |
Эти сайты не просто являются примером для разработчика на Django, но и вдохновением для того, что можно использовать в своих собственных проектах.
Как настроить Django на VDS
В этом кратком руководстве предполагается, что вы уже выполнили установку софта на свою операционную систему. Перед стартом убедитесь, что облачный сервер правильно настроен для размещения программной платформы Django с уже установленным сервером базы данных, веб-сервером и virtualenv. Если нет, то вернитесь к нашей теме по установке программы.
Что нужно сделать, чтобы установить Django на VPS:
- Обновить пакеты
Для этого можно подключиться к вашему VPS через SSH:
sudo apt-get update
sudo apt-get upgrade
Если есть что обновить, то жмите Enter.
- Создаем базу данных
Предполагается в нашем мануале, что вы используете PostgreSQL в качестве сервера БД. Если это не так, что проверьте свою документацию о том, как создать БД для своего сервера.
Для PostgreSQL команда следующая:
- sudo su – postgres − в приглашении терминала будет указано postgres @ yourserver;
- createdb mydb – создаем БД, заменив mydb на любое имя;
- createuser –P – команда отвечает за создание пользователя;
Далее выпадут подсказки для имени пользователя, вашего пароля, его подтверждение. Это первые три подсказки, в последних трех достаточно указать «n» и нажать «Enter». Это подтверждает, что пользователь будет иметь доступ только к тому, что разрешает разработчик.
- psql позволит активировать интерфейс командной строки;
- GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser; − позволит дать доступ к БЗ вашему пользователю.
Теперь у вас есть новая БД и пользователь для доступа к ней. После можно заняться настройкой VPS.
Ниже будет пример настройки VPS при использовании облачного сервера NGINX:
sudo nano /etc/nginx/sites-available/myproject (замените myproject в конце на имя вашего проекта)
Далее вводим такие сроки кода:
server {
server_name yourdomainorip.com;
access_log off;
location /static/ {
alias /opt/myenv/static/;
}
location / {
proxy_pass http://127.0.0.1:8001;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
add_header P3P ‘CP=”ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV”‘;
}
}
Таким образом вы поставили NGINX для обслуживания всего, что будет запрашиваться на yourdomainorip.com/static/ из вашего статического каталога, который был ранее создан для нового проекта.
Далее нужно установить символическую ссылку в каталоге, которая будет указывать на файл с новыми настройками:
cd /etc/nginx/sites-enabled
Так облачный сервер узнает, что сайт стал активным.
Далее выполняет команду:
sudo ln -s ../sites-available/myproject
После можно перезапустить сервер командой:
sudo service nginx restart
Обязательно выпадет ошибка, которую мы исправляем в файле /etc/nginx/nginx.conf таким образом:
server_names_hash_bucket_size 64;
Теперь можно переместить локальный проект на Django в дроплет. Тут вариантов масса – при помощи FTP, SFTP, SCP, Git, SVN и т.д.
Заключение
Преимущества использования фреймворка Django на Python можно суммировать в трех коротких фразах – меньше усилий, времени и трудовых затрат на создание сайта. Можно задействовать программную платформу для небольшого проекта, а после развивать его, обеспечивая сайту функциональность и безопасность. При этом такая среда помогает создавать сложные приложения, которые могут обрабатывать большой трафик и объемы данных. В целом, Django подойдет для любой бизнес-идеи, независимо от того, какой это тип проекта.
Вопрос-ответ
Какие функции доступны в Django?
Возможности, доступные в Django:
- Интерфейс администратора (CRUD).
- Шаблоны.
- Обработка форм.
- Интернационализация.
- Сессия, управление пользователями, разрешения на основе ролей.
- Объектно-реляционное отображение (ORM).
- Фреймворк для тестирования.
- Хорошо написанная инструкция пользователя.
Какая архитектура у Django:
Архитектура Django состоит из
- Модели − описывает схему вашей базы данных и структуру данных.
- Представления − контролирует то, что видит пользователь, извлекает данные из соответствующих моделей и выполняет любые вычисления, сделанные для данных, и передает их в шаблон.
- Шаблоны − определяет, как пользователь видит полученный ответ на запрос. Он показывает, как данные, полученные из представлений, должны быть изменены или отформатированы для отображения на странице.
- Контроллер − фреймворк Django и парсинг URL.
Почему Django следует использовать для веб-разработки?
Вот ряд причин:
- Он позволяет разделить модули кода на логические группы, чтобы сделать его гибким для изменения.
- Чтобы упростить администрирование веб-сайта, он предоставляет автоматически сгенерированный веб-администратор.
- Django предоставляет предварительно упакованный API для общих пользовательских задач.
- Дает пользователю систему шаблонов для определения HTML-шаблона для вашей веб-страницы, чтобы избежать дублирования кода.
- Позволяет разработчику определить, какой URL будет для данной функции.
- Помогает отделить бизнес-логику от HTML.
- Работает на языке программирования Python.