Введение в Django на Python — начало работы

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

Содержание

Что такое 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-запроса/ответа с помощью своих компонентов:

Пример архитектуры Django

  • Сначала веб-браузер запрашивает страницу, указанную 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

Чтобы остановить сервер разработки 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.

Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *