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



Pdf көрінісі
бет223/238
Дата07.01.2022
өлшемі7,86 Mb.
#18670
түріКнига
1   ...   219   220   221   222   223   224   225   226   ...   238
ПРИМЕЧАНИЕ

Выражения в строках  и , обращающиеся к базе данных за конкретной информацией, называ-

ются «запросами» . Когда вы пишете подобные запросы для своих проектов, сначала опробуйте их 

в оболочке 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   ...   219   220   221   222   223   224   225   226   ...   238




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

        Басты бет