Сейчас хороший момент, что бы подчеркнуть ключевой момент философии URLconfs
и Django: понятие “слабые связи” (loose coupling). Проще говоря, “слабые связи“, или “слабосвязанность” – это подход в программировании, при котором особое значение имеет независимость компонентов друг от друга – т.е. наличие “слабых связей” между ними. Если две части кода “слабосвязаны” – то изменения в одной части не повлияют на работу другой части.
URLconf
в Django является хорошим примером такого похода. В Django приложениях определение URL-я и функция представления, которые вызываются этими URL-ами имеют как раз такую “слабую связь”. Т.е. – определение того, какой URL будет связан с определённой функций, и реализациея самой функции являются двумя мало зависимыми вещами. Это даёт вам возможность изменять одну часть без влияния на другую.
Возьмём для примера наше представление current_datetime
. Если мы хотим изменить URL приложения, допустим – изменить /time/
на /current-time/
– нам достаточно внести небольшое изменение в URLconf
, не заботясь о самом представлении. Так же верно и обратное – если мы хотим изменить функцию представления, изменив логику её работы, мы можем это сделать без изменения URL, к которой подключена эта функция.
Кроме того, если мы хотим добавить функциональность времени-даты на несколько URL-ов – нам достаточно изменить URLconf
, без редактирования кода представления.
Вот несколько надуманный пример, но идея, заложенная в нём, может вам пригодиться:
from django.conf.urls.defaults import patterns, include, url from example.views import hello, current_datetime urlpatterns = patterns('', url(r'^$', hello), url(r'^hello/$', hello), url(r'^time/$', current_datetime), url(r'^another-time-page/$', current_datetime), )
Таким образом, URLconf
и представления являются наглядным примером слабых связей. Мы будем обращать ваше внимание на примеры важности этой философии далее в нашей книге.
Продолжение в статье Django Book: третье представление – динамические URL-ы.