Конфигурация URL и слабая связанность
Теперь самое время остановиться на методологическом принципе, стоящем за идеей конфигурации URL и Django в целом, - принципе слабой связанности. Говоря попросту, слабая связанность - это подход к разработке программного обеспечения, в котором на первое место выдвигается взаимозаменяемость составных частей. Если две части кода слабо связаны, то изменения в одной из них почти или совсем не отразятся на другой.
Идея конфигурации URL в Django - хороший пример практического применения этого принципа. В приложении Django определения URL и ассоциированные с ними функции представления слабо связаны, то есть решение о том, какой URL сопоставить данной функции, и реализация самой функции располагаются в разных местах. Это позволяет подменить одну часть, не затрагивая другую.
Рассмотрим, к примеру, представление current_datetime. Если возникнет желание изменить URL этой страницы, например, с /time/ на /си г rent-time/, то достаточно будет внести изменение в конфигурацию URL, не трогая само представление. Наоборот, если требуется как-то изменить логику работы функции представления, то это можно сделать, не затрагивая URL, с которым эта функция ассоциирована.
А если бы вы захотели сопоставить с функциональностью вывода текущей даты несколько URL, то это тоже можно было бы легко сделать путем редактирования конфигурации URL, не внося никаких изменений в код представления. В примере ниже к функции current_datetime можно обратиться по любому из двух URL-адресов. Конечно, этот пример надуманный, но иногда такая техника оказывается полезной:
urlpatterns = patternsC’, (‘~hello/$’, hello), (‘"time/S’, current_datetime), (‘~another-time-page/$’, current_datetime),
)
Конфигурация URL и представления - пример слабой связанности в действии. Мы еще не раз встретимся с проявлениями этого важного принципа на страницах этой книги.
Источник: Головатый А., Каплан-Мосс Дж. Django. Подробное руководство, 2-е издание. - Пер. с англ. - СПб.: Символ- Плюс, 2010. - 560 е., ил.