Хостинг Django от «Джино»
Table of contents

Схема URL и свободное связывание

Настало время указать на ключевой момент схемы URL и Django в целом: принцип свободного связывания. Просто примем, что свободное связывание является неким подходом к разработке программного обеспечения, который отражает важность создания связываемых компонентов. Если два компонента кода свободно связаны, тогда изменения, сделанные в одном компоненте отразятся незначительно или совсем не отразятся на коде другого компонента.

Схема URL Django является хорошим примером применения такого принципа на практике. В Django-приложении определения URL и функций представления, которые они вызывают связаны свободно. Следовательно, решение о том, какой URL должен соответствовать данной функции и реализация самой функции располагаются в двух разных местах. Это позволяет вам отключать один компонент приложения без влияния на остальные.

Для примера рассмотрим наше представление current_datetime. Если нам потребуется изменить URL в приложении, скажем, переименовать его из /time/ в /current-time/, нам достаточно будет сделать быстрое изменение в файле привязок, не беспокоясь о самом представлении. Аналогично, если нам потребуется изменить функцию представления — как-то изменить логику её работы — мы можем сделать это без внесения изменений в URL, к которому привязана данная функция.

Продолжая, если нам потребуется разделить функционал данного представления между несколькими URL, мы сможем легко реализовать это, отредактировав схему URL, не внося изменений в код представления. В данном примере, наше представление current_datetime доступно по двум URL:

urlpatterns = patterns('',
    ('^hello/$', hello),
    ('^time/$', current_datetime),
    ('^another-time-page/$', current_datetime),
)

Схема URL и представления являются примером свободного связывания в действии. Мы продолжим рассматривать на примерах этот важный подход в течение всей книги.


Ищем Python программистов

Found misprint?
Select it with the mouse and hit Enter
Ctrl-Enter
Processed:
33 1 199 25


The full repository of DjangoBook translation you can get on GitHub.
We appreciate your patches!

We are glad to hear your questions, comments or suggestions!
(Open in new tab)

Users number: 601

Русская группа

на поддержку перевода
Яндекс Яндекс.Деньги Хочу такую же кнопку
Ускорить процесс перевода!
ЯМ:41001223475816


© 2008-2012 Ruslan Popov @ gmail.com Powered by Django 1.2.5