Создадим новое Django-приложение и научимся отслеживать различные URL-адреса, отображая пользователю информацию при переходе на них.
Django-приложение
Приложения внутри Django-проекта — это отдельные категории сайта. Примеры:
- Форум: Выделяется в отдельное приложение.
- Система регистрации и авторизации: Работа с пользователем — отдельное приложение.
Количество приложений зависит от структуры сайта. Можно объединить всё в одно, но это нелогично. Django позволяет разбивать сайт на приложения-категории. Лучше разделять различные категории на разные приложения.
Примеры приложений:
- main: Для основных страниц (главная, о компании, контакты).
- users: Для регистрации и авторизации пользователей.
- Приложение для добавления записей в базу данных: Обработка форм и отображение данных.
Хотя можно создать одно приложение для всего сайта, наличие хотя бы одного обязательно. Приложения необходимы для:
- Создание шаблонов, отображаемых пользователю.
- Работа с базой данных.
- Организация функционала.
Количество приложений не ограничено.
Создание приложения main
В терминале выполним команду:
python manage.py startapp main
(Если команда python не работает, используйте python3).
Создаётся папка main со следующими файлами:
- migrations: Папка для файлов миграций (описание структуры базы данных). Подробно миграции будут рассмотрены в отдельном уроке.
- __init__.py: Пустой файл, указывающий Python, что это пакет.
- admin.py: Определение моделей, отображаемых в панели администратора.
- apps.py: Глобальные настройки приложения. Здесь указано название приложения (main).
- models.py: Создание моделей данных (классы для таблиц в базе данных).
- tests.py: Файл для unit-тестирования.
- views.py: Методы, обрабатывающие запросы пользователей к URL-адресам.
Регистрация приложения
Зарегистрируем приложение в файле settings.py в секции INSTALLED_APPS. Добавим строку:
INSTALLED_APPS = [
# ... другие приложения ...
'main',
]
Отслеживание URL-адресов
Для отслеживания URL-адресов используется файл urls.py (в корне проекта). Уже определён URL для панели администратора. Добавим отслеживание главной страницы:
В файле urls.py (корневой):
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('main.urls')), #Подключение URL из приложения main
]
Создадим файл urls.py в приложении main:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'), # Главная страница
path('about/', views.about, name='about'), # Страница "О нас"
]
В файле views.py (приложение main):
from django.http import HttpResponse
def index(request):
return HttpResponse("<h4>Проверка работы</h4>")
def about(request):
return HttpResponse("Страница про нас")
Теперь при переходе на / выводится «Проверка работы», а при переходе на /about/ — «Страница про нас».
Практика
Добавьте отслеживание других URL-адресов и выводите различный контент. В следующем уроке мы научимся использовать HTML-шаблоны.