Схема URL для отдельных тем

We use cookies. Read the Privacy and Cookie Policy

Схема URL для страницы отдельной темы немного отличается от других схем URL, которые встречались нам ранее, потому что в ней используется атрибут id темы для обозначения запрашиваемой темы. Например, если пользователь хочет просмотреть страницу с подробной информацией по теме Chess (id=1), эта страница будет иметь URL-адрес http://localhost:8000/topics/1/. Вот как выглядит схема для этого URL-адреса из learning_logs/urls.py:

urls.py

...

urlpatterns = [

...

. .# Страница с подробной информацией по отдельной теме

. .url(r'^topics/(?P<topic_id>d+)/$', views.topic, name='topic'),

]

Рассмотрим регулярное выражение в схеме URL, r'^topics/(?P<topic_id>d+)/$'. Символ r сообщает Django, что последующая строка должна интерпретироваться без дополнительной обработки, а выражение заключено в кавычки. Вторая часть выражения, /(?P<topic_id>d+)/, описывает целое число, заключенное между двумя косыми чертами; это целое число сохраняется в аргументе topic_id. Круглые скобки, в которые заключена эта часть выражения, сохраняют значение из URL; часть ?P<topic_id> сохраняет совпавшее значение в topic_id; а выражение d+ ­совпадает с любым количеством цифр, заключенных между символами косой черты.

Когда Django находит URL-адрес, соответствующий этой схеме, вызывается функция представления topic(), в аргументе которой передается значение, хранящееся в topic_id. Значение topic_id используется для получения нужной темы внутри функции.