Введение в Django на Python — начало работы
В этом руководстве вы узнаете, как создать новый проект Django в Python, понять структуру проекта и запустить веб-приложение Django из веб-браузера.
- Что такое Django?
- Архитектура Django
- Создание виртуальной среды
- Установка пакета Django
- Изучение команд Django
- Запуск сервера разработки Django
- Остановка сервера разработки Django
- Создание файла requirements.txt
Что такое Django?
Django — это веб-фреймворк Python, включающий набор компонентов для решения распространенных задач веб-разработки. Django позволяет быстро разрабатывать веб-приложения с меньшим объемом кода, используя преимущества своей платформы.
Django следует принципу DRY: don’t repeat yourself (не повторяйся), что позволяет максимально увеличить возможность повторного использования кода. Django использует шаблон MVT (Model-View-Template), который немного похож на шаблон MVC (Model-View-Controller).
Модель MVT состоит из трех основных компонентов:
- Model (модель) — определяет данные или содержит логику, взаимодействующую с данными в базе данных.
- View (представление, вид) – взаимодействует с базой данных через модель и передает данные в шаблон для представления данных.
- Template (шаблон) – определяет шаблон для отображения данных в веб-браузере.
Сам фреймворк Django выступает в качестве контроллера. Фреймворк Django использует шаблоны URL, которые отправляют запрос в соответствующее представление.
Если вы знакомы с MVC, то следующие варианты эквивалентны:
- Шаблон(T) эквивалентен представлению(V) в MVC
- Представление(V) эквивалентно Контроллеру(C) в MVC
- Модель(M) эквивалентна модели(M) в MVC
На практике вы часто будете работать с моделями, представлениями, шаблонами и URL-адресами в приложении Django.
Архитектура Django
На следующем рисунке показано, как Django управляет циклом HTTP-запроса/ответа с помощью своих компонентов:
- Сначала веб-браузер запрашивает страницу, указанную URL-адресом, с веб-сервера. Веб-сервер передает HTTP-запрос в Django.
- Во-вторых, Django сопоставляет URL-адрес с шаблонами URL-адресов, чтобы найти первое совпадение.
- В-третьих, Django вызывает представление, соответствующее URL-адресу.
- В-четвертых, представление использует модель для извлечения данных из базы данных.
- В-пятых, модель возвращает данные в представление.
- Наконец, представление отображает шаблон и возвращает его в виде HTTP-ответа.
Создание виртуальной среды
Виртуальная среда создает изолированную среду, состоящую из независимого набора пакетов Python.
Используя виртуальные среды, вы можете иметь несколько проектов, использующих разные версии Django. Также, при перемещении проекта на другой сервер, вы можете установить все зависимые пакеты проекта с помощью одной команды pip.
Следующие шаги покажут вам, как создать виртуальную среду для проекта Django с использованием встроенного модуля venv:
- Сначала создайте новый каталог django-playground:
mkdir django-playground
- Во-вторых, перейдите в каталог django-playground:
cd django-playground
- В-третьих, создайте новую виртуальную среду с помощью модуля venv:
python -m venv venv
- В-четвертых, активируйте виртуальную среду:
venv\scripts\activate
Терминал покажет следующее:
(venv) D:\django-playground>
Обратите внимание, что вы можете деактивировать виртуальную среду с помощью команды deactivate:
deactivate
Установка пакета Django
Поскольку Django — это сторонний пакет, вам необходимо установить его, выполнив следующие действия:
Сначала выполните следующую команду pip для установки пакета Django:
pip install django
Затем проверьте версию Django:
python -m django --version
Вы увидите что-то вроде этого:
4.1.1
Обратите внимание, что вы, скорее всего, увидите более высокую версию.
Изучение команд Django
Django поставляется с утилитой командной строки под названием django-admin, которая управляет административными задачами, такими как создание нового проекта и запуск сервера разработки Django.
Чтобы вывести список всех доступных команд Django, выполните следующую команду django-admin:
django-admin
Выход:
Type 'django-admin help <subcommand>' for help on a specific subcommand. Available subcommands: [django] check compilemessages createcachetable dbshell diffsettings dumpdata flush inspectdb loaddata makemessages makemigrations migrate optimizemigration runserver sendtestemail shell showmigrations sqlflush sqlmigrate sqlsequencereset squashmigrations startapp startproject test testserver
На данный момент нас интересует команда startproject, которая создает новый проект Django. Следующая команда startproject создает новый проект с именем django_project:
django-admin startproject django_project
Эта команда создает каталог django_project.
Давайте рассмотрим структуру проекта:
cd django_project
Ниже показана структура django_project:
├── django_project | ├── asgi.py | ├── settings.py | ├── urls.py | ├── wsgi.py | └── __init__.py └── manage.py
Вот краткий обзор каждого файла в проекте Django:
- manage.py — это программа командной строки, которую вы используете для взаимодействия с проектом, например, для запуска сервера разработки и внесения изменений в базу данных.
Django_project — это пакет Python, состоящий из следующих файлов:
- __init__.py – пустой файл, указывающий на то, что каталог django_project является пакетом.
- settings.py – содержит настройки проекта, такие как установленные приложения, подключения к базам данных и каталоги шаблонов.
- urls.py – хранит список маршрутов, сопоставляющих URL-адреса с представлениями.
- wsgi.py – содержит конфигурации, которые запускают проект как приложение интерфейса шлюза веб-сервера(WSGI) с веб-серверами, совместимыми с WSGI.
- asgi.py – содержит конфигурации, которые запускают проект как приложение интерфейса асинхронного веб-сервера-шлюза(AWSGI) с веб-серверами, совместимыми с AWSGI.
Запуск сервера разработки Django
Django поставляется со встроенным веб-сервером, который позволяет быстро запустить ваш проект Django в целях разработки.
Веб-сервер разработки Django будет постоянно проверять наличие изменений в коде и автоматически перезагружать проект. Однако в некоторых случаях, например при добавлении новых файлов в проект, вам все равно придется вручную перезапускать веб-сервер.
Для запуска сервера разработки Django используйте команду runserver:
python manage.py runserver
Выход:
Watching for file changes with StatReloader Performing system checks... System check identified no issues(0 silenced). ... Django version 4.1.1, using settings 'django_project.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK.
После того, как сервер запущен и работает, вы можете открыть веб-приложение, используя URL, указанный в выводе. Обычно URL выглядит примерно так:
http://127.0.0.1:8000/
Теперь вы можете скопировать и вставить URL в веб-браузер. Он должен показать следующую веб-страницу:
Файл urls.py содержит маршрут по умолчанию, который сопоставляет путь /admin с представлением admin.site.urls:
from django.contrib import admin from django.urls import path urlpatterns = [ path('admin/', admin.site.urls), ]
Чтобы открыть страницу администратора, используйте следующий URL:
http://127.0.0.1:8000/admin
Появится страница входа:
Остановка сервера разработки Django
Чтобы остановить сервер разработки Django, откройте терминал и дважды нажмите Ctrl-C(или Command-C).
Создание файла requirements.txt
Файл requirements.txt содержит все зависимости для конкретного проекта Django. Он также содержит зависимости зависимостей.
Чтобы создать файл requirements.txt, выполните следующую команду pip:
pip freeze > requirements.txt
При переносе проекта на новый сервер, например, тестовый или производственный, вы можете установить все зависимости, используемые текущим проектом Django, с помощью следующей команды pip:
pip install -r requirements.txt
Загрузите исходный код проекта Django.