JavaRush /Курсы /Модуль 3: Django /Первое приложение в Django

Первое приложение в Django

Модуль 3: Django
1 уровень , 8 лекция
Открыта

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

Ключевая идея Django: "Разделяй и властвуй". Каждое приложение концентрируется на своей задаче. Это делает проект масштабируемым и легко управляемым.

Создание нового приложения

Создание приложения в Django осуществляется с помощью команды startapp. Это так просто, что наша задача сначала понять, зачем нам это нужно. Допустим, мы хотим создать небольшой блог. Для этого создадим приложение, которое будет отвечать за публикацию и отображение постов.

Шаг 1: Используем уже знакомую нам команду startapp

python manage.py startapp blog

Эта команда создаст директорию с названием blog, в которой уже будет базовая структура, подготовленная Django.

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

blog/
    __init__.py         # Указывает, что это Python-модуль
    admin.py            # Настройки для админ-зоны
    apps.py             # Конфигурация приложения
    migrations/         # Папка для файлов миграций базы данных
        __init__.py
    models.py           # Ваши модели для базы данных
    tests.py            # Модуль для тестирования приложения
    views.py            # Ваши представления (views)

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

Регистрация приложения в проекте

Приложение — это как новый сосед, который только что переехал в ваш дом. Если вы не уведомите об этом "диспетчера" (нашего проекта), он и знать не будет о новом жителе.

Чтобы проект "увидел" новое приложение, нужно зарегистрировать его в файле settings.py. Откройте его и найдите список INSTALLED_APPS. Добавьте туда ваше приложение:

# settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Наше приложение
    'blog',
]

Теперь Django знает о вашем приложении и начнёт учитывать его в маршрутизации, работе с базой данных и других механизмах.

Создание первого представления (views)

Django — это MTV (Model-Template-View), где логика обработки запросов реализуется в "представлениях" (views). Представление — это Python-функция или класс, который обрабатывает HTTP-запрос и возвращает HTTP-ответ.

Давайте создадим простое представление в файле views.py приложения blog:

# blog/views.py

from django.http import HttpResponse

def home(request):
    return HttpResponse("Добро пожаловать в наш блог!")

 

Что здесь происходит? Мы определяем функцию home, которая принимает объект HTTP-запроса request и возвращает простой HTTP-ответ с текстом "Добро пожаловать в наш блог!". Это пока примитивное представление, но оно работает!

5. Настройка маршрутов (urls.py)

Теперь нужно связать наше представление с URL-адресом, чтобы пользователь мог увидеть его в браузере. Для этого создадим файл urls.py в папке blog:

touch blog/urls.py

И добавим в него следующий код:

# blog/urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.home, name='home'),  # Главная страница нашего блога
]

Здесь:

  • Мы импортируем path из модуля django.urls для определения маршрутов.
  • Мы связываем URL '/' с представлением home.

Но это ещё не всё! Нам нужно "подключить" маршруты нашего приложения к глобальным маршрутам проекта. Откройте файл urls.py проекта (он находится в корне вашего проекта) и отредактируйте его:

# myproject/urls.py

from django.contrib import admin
from django.urls import path, include  # Импортируем include

urlpatterns = [
    path('admin/', admin.site.urls),  # Маршруты админ-зоны
    path('', include('blog.urls')),  # Подключаем маршруты нашего приложения
]

 

Теперь Django знает, что любые запросы на '/' (корень сайта) будут обрабатываться приложением blog.

Запуск и проверка работы

Всё готово для запуска! Запустите сервер разработки:

python manage.py runserver

Откройте браузер и перейдите на http://127.0.0.1:8000/. Если всё сделано правильно, вы увидите текст "Добро пожаловать в наш блог!".

Типичные ошибки и их решение

Проблема 1: Путь не найден (404 Not Found)

Проверьте, подключили ли вы файл urls.py приложения в глобальный файл маршрутов проекта. Также убедитесь, что в INSTALLED_APPS добавлено ваше приложение.

Проблема 2: Ошибка модуля ImportError

Убедитесь, что вы правильно указали пути во всех импортах. Django очень чувствителен к правильности путей.

Проблема 3: Сервер не запускается

Проверьте, активировано ли виртуальное окружение. Если нет, активируйте его и установите все зависимости из requirements.txt.

Практическое применение

После этой лекции у вас есть минимально рабочее приложение. В реальных проектах создание такого каркаса — это первый шаг в разработке функциональных модулей. Например:

  • Вы можете добавить функционал отображения списка постов.
  • Создать отдельную страницу для каждого поста.
  • Добавить форму для создания новых постов.

И всё это — на основе уже готового приложения blog.

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

1
Задача
Модуль 3: Django, 1 уровень, 8 лекция
Недоступна
Создание базового приложения
Создание базового приложения
1
Задача
Модуль 3: Django, 1 уровень, 8 лекция
Недоступна
Создание еще одного приложения
Создание еще одного приложения
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ