В этом руководстве мы узнаем разницу между проектом Django и приложением Django, а также узнаем, как запустить новый проект Django.
Django — это
Требования
Вам не нужны предварительные знания для настройки проекта Django. Но Django — это фреймворк Python, поэтому для его использования у вас должны быть прочные основы использования Python.
Прежде чем начать, убедитесь, что у вас есть терминал или командная строка с установленным Python 3.6 или более поздней версии.
В большинстве систем macOS и Linux Python 3 установлен по умолчанию, но если вы используете Windows, вам потребуется загрузить и установить Python. Вы можете следовать этому руководству с официального сайта Python.
Вы можете открыть терминал, открыв средство поиска приложений вашей операционной системы и выполнив поиск Terminal, или в Windows, cmd.
Откройте терминал с помощью средства поиска приложений
После того, как вы настроили терминал, пришло время подтвердить вашу версию Python. Для этого введите следующую команду:
python —version
Python 3.9.7 # My result
Если вы не получили результат вида Python 3.x, не паникуйте. Есть два варианта:
если python —versionвозвращена версия Python 2.x, вам нужно будет использовать ее python3вместе с этим руководством. Обычно это происходит с некоторыми системами macOS, а также с некоторыми дистрибутивами Linux, такими как Ubuntu. Попробуйте запустить следующую команду:
python3 —version
Python 3.9.7 # Again, my result
если вы получили Unknown commandошибку, попытались запустить python3и снова получили другую ошибку, вам необходимо загрузить и установить Python с официального сайта.
Теперь, когда вы знаете, какую команду Python запускать в терминале, давайте углубимся в проекты Django.
Что такое проект Джанго?
Проект Django — это пакет Python, необходимый для работы
Вы также можете думать об этом как о наборе настроек и небольших модулях Python, называемых приложениями. Мы поговорим о них позже, но в качестве предварительной концепции приложение — это еще один набор файлов Python, которые решают конкретную задачу вашего приложения.
В этой статье вы узнаете о сложной структуре проекта Django. Но с самого начала я хочу, чтобы вы знали, что проект Django можно сузить до одного файла,
Быстрая демонстрация этого — проект Minimal Django. Это файл с 23 строками кода, который позволяет нам вызвать Django «Hello, World!» проект в жизнь:
import sys
from django.conf import settings
from django.urls import path
from django.core.management import execute_from_command_line
from django.http import HttpResponse
settings.configure (
DEBUG=True,
ROOT_URLCONF=sys.modules[__name__],
)
def index (request):
return HttpResponse ('A minimal Django response!')
urlpatterns = [
path (r’', index),
]
if __name__ == '__main__':
execute_from_command_line (sys.argv)
Теперь проект Django может пойти гораздо дальше. Отличным примером является Instagram, который имеет тысячи конечных точек Django и до сих пор использует этот фреймворк для важных функций.
Как настроить проект Django
Не беспокойтесь слишком сильно, если некоторые из следующих команд кажутся сложными. После того, как вы создадите пару проектов, вы будете знать их как свои пять пальцев.
Прежде всего, вам нужно знать, что Django — это внешний пакет. Другими словами, он не встроен в Python, поэтому вам нужно будет установить его с помощью PIP.
PIP — это менеджер пакетов для Python, инструмент, который позволяет вам устанавливать пакеты Python из индекса пакетов Python (PyPI).
Теперь, прежде чем устанавливать реальный пакет Python, вам нужно создать виртуальную среду. Рекомендуется создавать виртуальную среду для каждого проекта Django, который вы создаете, чтобы вы могли отслеживать зависимости.
Возможно, код, который у вас есть в проекте Django 2.6, может не работать с Django 3.0. Виртуальная среда позволяет вам иметь определенные требования для каждого вашего проекта.
Вы можете создать виртуальную среду с именем.venv (или любым другим именем) с помощью следующей команды:
python -m venv.venv
Теперь, если вы перечислите файлы в текущем каталоге, вы увидите новую папку с именем.venv, которая в то же время содержит изолированные двоичные файлы Python:
$ ls -lah.venv/
Permissions Size User Date Modified Name
lrwxrwxrwx 3 daniel 10 nov 23:13 lib64 → lib
.
Чтобы активировать вашу виртуальную среду, вам необходимо активировать ее с помощью следующей команды:
source.venv/bin/activate
Это будет работать только в оболочках bash (доступно в macOS и Linux). Если вы используете другую оболочку, вы можете взглянуть на следующую venvтаблицу активации:
Платформа Оболочка Команда для активации виртуальной среды
POSIX баш/зш $ источник.venv>/bin/активировать
рыба $ источник.venv>/bin/activate.fish
csh/tcsh $ источник.venv>/bin/activate.csh
Ядро PowerShell $.venv/bin/Activate.ps1
Окна cmd.exe C: \>.venv\Scripts\activate.bat
PowerShell PS C: \>.venv\Scripts\Activate.ps1
Способ проверить, активирована ли ваша оболочка, — просмотреть изменения в приглашении. В моем случае то, что я увидел, изображено ниже.
Подсказка виртуальной среды
Теперь установите пакет Django. Вы можете установить последнюю или определенную версию Django:
pip install django # Latest version
pip install django==2.2 # Specific version
Начать проект
После того, как вы установили Django, чтобы начать новый проект, вы вызываете утилиту командной строки
Стоит отметить, что некоторые имена зарезервированы для Django — djangoили
# CommandError: 'django’ conflicts with the name of an existing Python module and cannot be used as a project name. Please try another name.
# CommandError: '
Общепринятой практикой является называть ваш проект как config, и это имеет некоторые преимущества.
Структура проекта Джанго
Как только вы запустите проект Django, вы увидите новую папку с именем выбранного вами проекта и структурой, подобной этой:
├── config
│ ├── config
│ │ ├── asgi.py
│ │ ├── __init__.py
│ │ ├── settings.py
│ │ ├── urls.py
│ │ └── wsgi.py
│ └── manage.py
└──.venv
Давайте подробно проанализируем каждую часть:
config/это внешняя папка вашего проекта. Для Django это не имеет значения, так что вы можете переименовать его как хотите.
config/config/является фактической папкой проекта Django. Он содержит файлы настроек вашего проекта.
manage.py— это скрипт Python с той же функциональностью, django_adminно использует настройки вашего проекта.
__init__.pyделает config/configпакет Python.
settings.pyявляется основным файлом вашего проекта. Вы можете добавлять, изменять или удалять переменные, чтобы изменить поведение вашего проекта.
urls.pyэто файл, который определяет
asgi.pyи wsgi.pyпозволить вам развернуть ваш проект на сервере.
Я знаю, что структура проекта Django может быть немного сложной в начале, но со временем она начинает обретать смысл. У каждого файла есть цель, и процесс разработки становится действительно приятным.
Обычный ярлык — не создавать внешнюю папку. Это полезно, потому что вам не нужно будет изменять структуру вашего проекта при развертывании на
Так, например, для каждого запускаемого вами проекта Django вы можете запустить следующую команду:
Попробуйте каждую команду самостоятельно и решите, какая из них лучше для вас.
Чтобы закончить этот раздел, мы запустим сервер разработки Django и проверим, что установка проекта прошла успешно.
Перейдите в корневую папку вашего проекта (где manage.pyнаходится) и запустите сервер с помощью этой команды:
python manage.py runserver
Теперь зайдите в свой браузер, введите localhost:8000/ и вы должны увидеть страницу Django по умолчанию.
Страница приветствия Джанго
Как настроить приложение Django
Как я уже говорил вам ранее, проект Django отличается от приложения Django.
Из официальной документации: «Приложение — это
Чем более функционально ориентированы ваши приложения, тем лучше.
Приложение Django является автономным, что означает, что его можно повторно использовать из проекта в проект. Вот почему вы можете установить внешнее приложение, например
Вы потратите большую часть своего времени на работу с приложениями, потому что они одно за другим создают все функции вашего проекта.
С этого момента вы будете использовать manage.pyутилиту, поэтому для создания приложения перейдите в корневую папку вашего проекта и выполните следующую команду:
python manage.py startapp
Постарайтесь быть как можно более конкретным с названиями ваших приложений. Если вы хотите создать приложение для интеграции платежей с PayPal или Stripe, назовите его просто payments:
python manage.py startapp payments
Давайте углубимся в структуру приложения Django:
├── config
│ ├...
├── manage.py
└── payments
├── admin.py
├── apps.py
├── __init__.py
├── migrations
│ └── __init__.py
├── models.py
├── tests.py
└── views.py
payments/папка вашего приложения.
admin.pyиспользуется для регистрации моделей в административном интерфейсе Django.
apps.pyопределяет конфигурацию приложения.
models.pyиспользуется для хранения моделей, которые являются объектами, которые мы создаем для хранения и управления данными.
migrations/— это папка, содержащая сценарии миграции приложения. Вы запускаете миграции, чтобы применить изменения наших моделей к базе данных.
tests.pyиспользуется для тестирования приложения.
views.pyэто файл, в котором мы определяем представления нашего приложения. Представление — это вызываемый объект Python, который получает
Внутри своих приложений вы можете создавать другие файлы и папки и даже создавать шаблоны, которые представляют собой способ Django для динамического отображения данных на
Шпаргалка по командам
В этом руководстве мы использовали много команд, поэтому вот краткое описание назначения каждой команды.
Команда Описание
python -m venv (name_of_venv) Создает виртуальную среду
source (venv) /bin/activate Активирует виртуальную среду
python manage.py runserver Запускает сервер Django
python manage.py startapp (app_name) Создает приложение Django
Заключение
Django — полнофункциональная
С помощью этого урока вы научились:
создать виртуальную среду
установить определенную версию Django
запустить проект Джанго
запустить сервер Django
создать приложение Django
различать приложение Django и проект Django