Cat

Django 7. Первое представление

В этом посте, создадим первое представление, пропишем URL-паттерны и разберём как это работает.

Все статьи

Icon Link

Дополнительные материалы

Icon Link

Реклама

Icon Link
Сайт на Django proDream 03 Август 2023 Просмотров: 1041

В интернете всё построено на запросах. Открывая любую страницу, мы делаем запрос к серверу "хочу попасть на такую-то страницу", а сервер уже обрабатывает его и возвращает ответ на запрос с содержимым страницы.

Для формирования ответа на запрос с доступом к той или иной странице в Django отвечают, так называемые "представления", они же "views".

Давайте создадим наше первое простое представление, для возврата содержимого базового шаблона посетителю сайта.

 

Первое представление.

Переходим в файл views.py расположенный в директории приложения.


Под имеющимся в файле импортом добавим функцию со следующим кодом:

def index(request):
    return render(request,
                  'blog/base.html')

 

Мы создали представление index, получающего запрос от пользователя.
Поскольку у нас пока заглушка и данные передавать нам никакие не нужно, сразу переходим к возврату ответа пользователю. За это отвечает функция render, в которую мы передаём запрос, а так же путь до файла шаблона.

 

URL-паттерн приложения.

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

 

В директории приложения создадим файл urls.py.
Файл urls.py в Django имеет важное значение. Он определяет, как URL-запросы будут соотноситься с определенными представлениями и функциями. В этом файле определяются URL-шаблоны, которые связывают входящие URL-запросы с соответствующими представлениями. Представления обрабатывают запросы и возвращают соответствующие HTTP-ответы.

 

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

from django.urls import path

from blog import views

app_name = 'blog'
urlpatterns = [
    path('', views.index, name='index'),
]

 

В переменной app_name указываем имя приложения, для корректного сопоставления URL-адресов.

 

Подробнее про urlpatterns.

В переменную urlpatterns присваиваем список. Внутри списка вызываем функцию path, формирующую маршрут и URL-адрес. 
 

В неё передаём:

  • Первым параметром URL-паттерн. Пустые кавычки означают, что паттерн будет применён к основному адресу сайта, например pressanybutton.ru, а если пропишем "blog", тогда он будет срабатывать, когда будем переходить по адресу pressanybutton.ru/blog
  • Вторым параметром указываем, какое представление необходимо вызвать при запросе данного адреса.
  • В третьем параметре указываем имя для пути.
    Также обратите внимание на вторую строку импорта, замените blog на имя вашего приложения

 

URL-паттерн проекта.

Теперь, надо сообщить Django о том, что у нас есть приложение со своим набором URL-паттернов. Для этого, перейдём в директорию проекта и откроем файл urls.py.
Там уже будет переменная urlpatterns с прописанным паттерном панели администратора.
 

Добавим в имеющийся список новую строку с адресами приложения:

from django.urls import path, include

urlpatterns = [
    # ...
    path('', include('blog.urls', namespace='blog')),
]

 

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

 

Паттерны STATIC_URL и MEDIA_URL.

И сразу добавим сюда определение путей для медиа и статических файлов. В этом же файле, только ниже добавьте следующие строки:

from django.conf.urls.static import static  
from django.conf import settings

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)  
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

 

Запустим Django командой python manage.py runserver и перейдём на страницу.
Должна отобразиться страница с заглушкой. 

Автор

    Нет комментариев

    Реклама