Книга «Изучаем Python»



Pdf көрінісі
бет246/266
Дата03.03.2023
өлшемі7,86 Mb.
#170986
түріКнига
1   ...   242   243   244   245   246   247   248   249   ...   266
Байланысты:
Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )

ПРИМЕЧАНИЕ
Выражения в строках 

и 

, обращающиеся к базе данных за конкретной информацией, называ-
ются «запросами» . Когда вы пишете подобные запросы для своих проектов, сначала опробуйте их 
в оболочке Django . Вы сможете проверить результат намного быстрее, чем если напишете пред-
ставление и шаблон, а затем проверите результаты в браузере .
Шаблон отдельной темы
В шаблоне должно отображаться название темы и текст записей. Также необходимо 
сообщить пользователю, если по теме еще не было сделано ни одной записи:
topic.html
{% extends 'learning_logs/base.html' %}
{% block content %}
 
Topic: {{ topic }}
Entries:
 

     
    {% for entry in entries %}

  •  
    {{ entry.date_added|date:'M d, Y H:i' }}
     
    {{ entry.text|linebreaks }}

  •  
    {% empty %}

  • There are no entries for this topic yet.

  • {% endfor %}

{% endblock content %}
Шаблон расширяет 
base .html
, как и для всех страниц проекта. Затем выводится 
текущая тема 

из шаблонной переменной 
{{
topic
}}
. Переменная 
topic
доступ-
на, потому что она включена в словарь 
context
. Затем создается маркированный 
список со всеми записями по теме 

; перебор записей осуществляется так же, как 
это делалось ранее для тем 

.


406
Глава 18 • Знакомство с Django
С каждым элементом списка связываются два значения: временна
́
я метка и пол-
ный текст каждой записи. Для временн
у
й метки 

выводится значение атрибута 
date_added
. В шаблонах Django вертикальная черта (
|
) представляет 
фильтр
— 
функцию, изменяющую значение шаблонной переменной. Фильтр 
date:'M
d,
Y
H:i'
выводит временны
́
е метки в формате 
January 1, 2015 23:00
. Следующая 
строка выводит полное значение 
text
(вместо первых 50 символов каждой запи-
си). Фильтр 
linebreaks

следит за тем, чтобы длинный текст содержал разрывы 
строк в формате, поддерживаемом браузером (вместо блока непрерывного текста). 
В точке 

шаблонный тег 
{%
empty
%}
используется для вывода сообщения об от-
сутствии записей.
Ссылки на странице
Прежде чем просматривать страницу отдельной темы в браузере, необходимо из-
менить шаблон списка тем, чтобы каждая тема вела на соответствующую страницу. 
Внесите следующие изменения в 
topics .html
:
topics.html
...
{% for topic in topics %}

  • {{ topic }}

  • {% empty %}
    ...
    Шаблонный тег URL используется для генерирования ссылки на основании схемы 
    URL из 
    learning_logs
    с именем 
    'topic'
    . Этой схеме URL необходим аргумент 
    topic_id
    , поэтому в шаблонный тег URL добавляется атрибут 
    topic.id
    . Теперь 
    каждая тема в списке представляет собой ссылку на страницу темы, например 
    http://localhost:8000/topics/1/
    .
    Если теперь обновить страницу тем и щелкнуть на теме, открывается страница, 
    изображенная на рис. 18.5.


    Достарыңызбен бөлісу:
    1   ...   242   243   244   245   246   247   248   249   ...   266




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

        Басты бет