Сейчас хороший момент, что бы подчеркнуть ключевой момент философии 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-ы.