Пошаговый запуск Django проекта
Бог у всех один — провайдеры разные (Стас Янович Янковский). Web-программа на базе фреймворка Django состоит из сущности называемой проектом и входящих в него приложений. Последние являются независимыми частями программы, над которыми могут работать разные команды. Бонус от такой архитектуры - возможность переиспользования приложений в других проектах.
После создания проекта в нем будут размещены служебные файлы, ключевыми из которых являются:
manage.py - запускает управляющие команды, например, создания приложения, старт сервера.
urls.py - хранит обработчики путей либо указатели к аналогичным файлам urls.py, в которых задаются обработчики на уровне приложений;
settings.py - задает глобальные настройки проекта, например, права доступа, язык сайта, список приложений, путь к основному url.py.
Ниже представляю ключевые шаги для создания web-программы:
- Создать проект
- Создать и зарегистрировать приложение
- Установить соответствие адресов url и обработчиков
- Запустить сервер
Дальнейшие манипуляции производятся из активированного виртуального окружения с установленным фреймворком Django.
Используем модуль django-admin:
django-admin startproject имя
2. Создание и регистрация приложения
Создание - вызываем модуль manage:
python manage.py startapp имя
Регистрация - добавьте имя в список INSTALLED_APPS в файле settings.py:
3. Установление соответствия адресов url и обработчиков
Проще всего задать в списке urlpatterns файла urls.py из подпапки с именем проекта. Составляющие urlpatterns - объекты path, в которых можно задать url (оканчивающийся на символ "/") и функцию. Также с функцией include можно задать дополнительные urls.py для приложений, обрабатывающих адреса с заданным префиксом.
Получив запрос от пользователя, Django ищет отображение на обработчик в файле, указанном в переменной ROOT_URLCONF файла settings.py (в моем случае - 'test_proj.urls'). Последний в свою очередь может отослать поиск к дополнительным urls.py. Функции-обработчики обычно задаются в файлах с именем views.py (не забудьте указать обязательный аргумент запроса), откуда импортируются в соответствующие urls.py.
Ниже пропишу в основном urls.py обработчик для обращения к основной странице сайта (будет находится в файле views.py директории с именем проекта), а также задам дополнительный urls.py, где будут указываться обработчики адресов с префиксом 'main':
from django.contrib import admin from django.urls import path, include from .views import root_f urlpatterns = [ path('', root_f), path('main/', include('main_app.urls')), ]
Вот файл views.py, где реализован обработчик для обращения к основной странице сайта:
from django.http import HttpResponse def root_f(request): return HttpResponse('<h1>Root</h1><p>Абзац</p>')
А вот urls.py приложения main_app:
from django.contrib import admin from django.urls import path from .views import main_f urlpatterns = [ path('', main_f), ]
Обратите внимание, что в этом файле пустой адрес будет присоединен к main/ (в файлах urls.py приложений не пишется префикс, заданный в головном urls.py).
Ниже views.py приложения main_app:
from django.shortcuts import render def main_f(request): return render(request, 'main.html')
Воспользуйтесь модулем manage:
python manage.py runserver