django
June 24, 2024

Проект и приложение в Django (Django #3)

Описание

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


1. Основные компоненты проекта Django

1.1. Что такое проект Django?

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

1.2. Что такое приложение Django?

Приложение Django — это модуль, который выполняет определенную задачу в проекте. Один проект может содержать множество приложений, и одно приложение может быть включено в разные проекты.

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

Когда мы создаем новый проект Django с помощью команды django-admin startproject, создается следующая структура:

myproject/
    manage.py
    myproject/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

Описание файлов и папок:

  • manage.py: Скрипт командной строки для взаимодействия с вашим проектом. Вы используете его для выполнения различных задач, таких как запуск сервера, выполнение миграций, создание приложений и т. д.
  • myproject/ (внутренняя папка с именем вашего проекта): Эта папка содержит основные настройки и конфигурации проекта.
  • __init__.py: Пустой файл, который указывает Python, что эта папка является пакетом.
  • settings.py: Основной файл конфигурации проекта. В этом файле вы настраиваете базу данных, приложения, параметры безопасности и другие настройки.
  • urls.py: Файл маршрутизации URL. Здесь вы определяете маршруты для вашего проекта, которые связывают URL-адреса с представлениями.
  • asgi.py: Конфигурационный файл для ASGI-сервера. Используется для развертывания асинхронных веб-приложений.
  • wsgi.py: Конфигурационный файл для WSGI-сервера. Используется для развертывания веб-приложений.

3. Файл settings.py и его конфигурация

Основные параметры settings.py:

  • BASE_DIR: Путь к корневой папке проекта. Используется для построения путей к файлам.
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
  • SECRET_KEY: Секретный ключ для обеспечения безопасности. Он используется для криптографических подписей.
SECRET_KEY = 'your-secret-key'
  • DEBUG: Параметр отладки. Включите его во время разработки и отключите в продакшене.
DEBUG = True
  • ALLOWED_HOSTS: Список хостов/доменов, которые могут обслуживаться вашим проектом.
ALLOWED_HOSTS = []
  • INSTALLED_APPS: Список установленных приложений в вашем проекте. Вы добавляете свои приложения в этот список.
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'movies',  # ваше приложение
]
  • MIDDLEWARE: Список промежуточного ПО, которое обрабатывает запросы и ответы.
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
  • ROOT_URLCONF: Путь к файлу маршрутизации URL вашего проекта.
ROOT_URLCONF = 'myproject.urls'
  • TEMPLATES: Настройки шаблонов. Включает параметры для использования движка шаблонов Django.
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
  • DATABASES: Настройки базы данных. Включает параметры для подключения к базе данных.
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
  • STATIC_URL: URL для доступа к статическим файлам.
STATIC_URL = '/static/'

4. Создание нового приложения в проекте Django

Для создания нового приложения в проекте Django используется команда:

(env) $ python manage.py startapp movies

Это создаст следующую структуру:

movies/
    __init__.py
    admin.py
    apps.py
    models.py
    tests.py
    views.py
    migrations/
        __init__.py

Описание файлов и папок приложения:

  • __init__.py: Пустой файл, который указывает Python, что эта папка является пакетом.
  • admin.py: Файл для регистрации моделей в административном интерфейсе Django.
  • apps.py: Файл конфигурации приложения.
  • models.py: Файл для определения моделей данных.
  • tests.py: Файл для написания тестов.
  • views.py: Файл для создания представлений (views).
  • migrations/: Папка для хранения миграций базы данных. Миграции используются для управления изменениями в структуре базы данных.

Заключение

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