Как быстро запустить проект и приложение Django?

Django Изучение

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

Django — это предпочтительный веб-фреймворк Python для создания веб-приложений. Это зрелая, полнофункциональная, гибкая платформа с открытым исходным кодом, которая позволяет создавать что угодно, от простого приложения CRUD до более сложного проекта с несколькими приложениями, такого как приложение для обмена фотографиями.

Требования

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

Перед запуском убедитесь, что у вас есть терминал или командная строка с установленным Python 3.6 или новее.

В большинстве систем macOS и Linux по умолчанию установлен Python 3, но если вы используете Windows, вам необходимо загрузить и установить Python. Вы можете следовать этому руководству на официальном сайте Python.

Вы можете открыть терминал, открыв поиск приложений в своей операционной системе и выполнив поиск терминала, или в 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?

Проект Django — это пакет Python, необходимый для работы веб-приложения. Он содержит все, что вам нужно для создания бэкэнда (серверная разработка, чего не видят пользователи) вашего сайта. Обычная функциональность проекта Django определяет, как вы взаимодействуете с базой данных, аутентификацию, как данные извлекаются и так далее.

Вы также можете рассматривать его как набор настроек и небольших модулей Python с именем apps. Мы поговорим о них позже, но в качестве предварительной концепции приложение — это еще один набор файлов Python, которые решают конкретную задачу вашего приложения.

Из этой статьи вы узнаете о сложной структуре проекта Django. Но с самого начала я хочу, чтобы вы знали, что проект Django можно сузить до одного файла, что-то вроде проекта Flask.

Быстрая демонстрация этого — проект 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('<h1>A minimal Django response!</h1>')


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).

Читайте также:  Что означает ошибка 404 в Nginx?

Теперь, прежде чем устанавливать фактический пакет Python, вам необходимо создать виртуальную среду. Рекомендуется создавать виртуальную среду для каждого создаваемого вами проекта Django, чтобы вы могли отслеживать зависимости.

Возможно, ваш код в проекте Django 2.6 может не работать с Django 3.0. Виртуальная среда позволяет вам иметь определенные требования для каждого вашего проекта.

Вы можете создать виртуальную среду с именем.venv(или любым другим именем) с помощью следующей команды:

python -m venv .venv

Теперь, если вы перечислите файлы в текущем каталоге, вы увидите новую папку с именем.venv, которая в то же время содержит изолированные двоичные файлы Python:

$ ls -lah .venv/
Permissions Size User   Date Modified Name
drwxr-xr-x     - daniel 10 nov 23:13  .
drwxr-xr-x     - daniel 10 nov 23:13  ..
drwxr-xr-x     - daniel 10 nov 23:13  bin
drwxr-xr-x     - daniel 10 nov 23:13  include
drwxr-xr-x     - daniel 10 nov 23:13  lib
lrwxrwxrwx     3 daniel 10 nov 23:13  lib64 -> lib
.rw-r--r--    69 daniel 10 nov 23:13  pyvenv.cfg

Чтобы активировать виртуальную среду, вам необходимо активировать ее с помощью следующей команды:

source .venv/bin/activate

Это будет работать только в оболочках bash (доступно в macOS и Linux). Если вы используете другую оболочку, вы можете взглянуть на следующую venvтаблицу активации :

Платформа Оболочка Команда для активации виртуальной среды
POSIX bash / zsh $ source.venv> / bin / активировать
рыба $ source.venv> /bin/activate.fish
csh / tcsh $ source.venv> /bin/activate.csh
Ядро PowerShell $.venv / bin / Activate.ps1
Windows 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-admin и запускаете:

django-admin startproject <project_name>

Стоит отметить, что некоторые имена зарезервированы для Django — djangoили django-admin. Не волнуйтесь, если вы получите сообщение об ошибке. Просто попробуйте использовать другое название проекта:

django-admin startproject django
# CommandError: 'django' conflicts with the name of an existing Python module and cannot be used as a project name. Please try another name.
django-admin startproject django-admin
# CommandError: 'django-admin' is not a valid project name. Please make sure the name is a valid identifier.

Распространенной практикой является наименование вашего проекта как config, и это имеет некоторые преимущества. Во-первых, это имя, которое вы можете сохранить единообразно для всех ваших проектов, а во-вторых, обычно в папке «project» хранятся только файлы, связанные с конфигурацией. Вы можете прочитать больше на официальном форуме Django :

django-admin startproject config

Структура проекта Django

После того, как вы запустите проект 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 — это файл, определяющий URL-адреса вашего проекта.
  • asgi.pyи wsgi.py позвольте вам развернуть свой проект на сервере.
Читайте также:  Как сохранить список элементов прямо в файле HTML?

Я знаю, что структура проекта Django может быть немного сложной вначале, но со временем она начинает обретать смысл. У каждого файла есть цель, и процесс разработки становится действительно приятным.

Распространенным ярлыком является отказ от создания внешней папки. Это полезно, потому что вам не придется изменять структуру проекта при развертывании на что-то вроде Heroku:

django-admin startproject <project_name> .

Так, например, для каждого запускаемого вами проекта Django вы можете выполнить следующую команду:

django-admin startproject config .

Попробуйте каждую команду по своему усмотрению и решите, какая из них лучше для вас.

Чтобы закончить этот раздел, мы запустим сервер разработки Django и проверим, что установка проекта прошла успешно.

Перейдите в корневую папку вашего проекта (где manage.pyнаходится) и запустите сервер с помощью этой команды:

python manage.py runserver

Теперь перейдите в свой браузер, введите localhost: 8000 /, и вы должны увидеть страницу Django по умолчанию.

Теперь перейдите в свой браузер, введите localhost

Как настроить приложение Django

Как я уже говорил вам ранее, проект Django отличается от приложения Django.

Из официальных документов: «Приложение — это веб-приложение, которое что-то делает». Это что-то особенное, например, приложение пользователя, приложение для комментариев, приложение чата.

Чем более функционально ориентированы ваши приложения, тем лучше.

Приложение Django является самодостаточным, что означает, что его можно повторно использовать от проекта к проекту. Вот почему вы можете установить внешнее приложение, например Django-allauth, и использовать его в своем проекте, просто добавив его в INSTALLED_APPSпеременную.

Вы будете проводить большую часть своего времени, работая с приложениями, потому что они одно за другим создают все функции вашего проекта.

С этого момента вы будете использовать эту manage.pyутилиту, поэтому для создания приложения перейдите в корневую папку вашего проекта и выполните следующую команду:

python manage.py startapp <app_name>

Постарайтесь указать названия приложений как можно более конкретными. Если вы хотите создать приложение для интеграции платежей с 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, который получает HTTP-запрос и возвращает HTTP-ответ.

Внутри своих приложений вы можете создавать другие файлы и папки и даже создавать шаблоны, которые являются способом Django для динамического отображения данных на веб-странице.

Шпаргалка по командам

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

Командование Описание
python -m venv (name_of_venv) Создает виртуальную среду
source (venv)/bin/activate Активирует виртуальную среду
django-admin startproject (project_name) Запускает проект Django
django-admin startproject (project_name). Устанавливает проект в том же каталоге
python manage.py runserver Запускает сервер Django
python manage.py startapp (app_name) Создает приложение Django

Заключение

Django — это полнофункциональный веб-фреймворк, который позволяет создавать приложения любого типа. Настроить проект Django быстро и легко, и вы можете сразу приступить к работе над своим проектом.

С помощью этого урока вы научились:

  • создать виртуальную среду
  • установить конкретную версию Django
  • начать проект Django
  • запустить сервер Django
  • создать приложение Django
  • различать приложение Django и проект Django
Оцените статью
bestprogrammer.ru
Добавить комментарий