М97 Изучаем Python: программирование игр, визуализация данных, веб-приложения


Глава 18 • Знакомство с Django base.html



Pdf көрінісі
бет306/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   302   303   304   305   306   307   308   309   ...   334
Байланысты:
Изучаем Python

418
Глава 18 • Знакомство с Django
base.html

Learning Log -

Topics
{% block content %}{% endblock content %}
После ссылки на домашнюю страницу 

добавляется дефис, после которого встав-
ляется ссылка на страницу тем, которая также представлена шаблонным тегом 
{%
url
%}

. Эта строка приказывает Django сгенерировать ссылку, соответствую-
щую схеме URL с именем 
'topics'
в 
learning_logs/urls .py
.
Обновив домашнюю страницу в браузере, вы увидите ссылку 
Topics
. Щелчок на 
этой ссылке открывает страницу, похожую на рис. 18.4.
Рис. 18.4.
Страница со списком тем
Страницы отдельных тем
Следующим шагом станет создание страницы для вывода информации по одной 
теме, с названием темы и всеми записями по этой теме. Мы снова определим новую 
схему URL, напишем представление и создадим шаблон. Кроме того, на странице со 
списком тем каждый элемент маркированного списка будет преобразован в ссылку 
на соответствующую страницу отдельной темы.
Схема URL для отдельных тем
Схема URL для страницы отдельной темы немного отличается от других схем URL, 
которые встречались нам ранее, потому что в ней используется атрибут 
id
темы 


Построение других страниц
419
для обозначения запрашиваемой темы. Например, если пользователь хочет про-
смотреть страницу с подробной информацией по теме 
Chess
(
id=1
), эта страница 
будет иметь URL-адрес 
http://localhost:8000/topics/1/
. Вот как выглядит схема для 
этого URL-адреса из 
learning_logs/urls .py
:
urls.py
...
urlpatterns = [
...
# Страница с подробной информацией по отдельной теме
path('topics//', views.topic, name='topic'),
]
Рассмотрим строку 
'topics//'
в этой схеме URL. Первая часть 
строки сообщает Django, что искать следует URL-адреса, у которых за базовым 
адресом идет слово 
topics
. Вторая часть строки, 
//
, описывает целое 
число, заключенное между двумя слешами; это целое число сохраняется в аргу-
менте 
topic_id
.
Когда Django находит URL-адрес, соответствующий этой схеме, вызывается функ-
ция представления 
topic()
, в аргументе которой передается значение, хранящееся 
в 
topic_id
. Значение 
topic_id
используется для получения нужной темы внутри 
функции.
Представление отдельной темы
Функция 
topic()
должна получить тему и все связанные с ней записи из базы 
данных:


Достарыңызбен бөлісу:
1   ...   302   303   304   305   306   307   308   309   ...   334




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет