Django URL Design - PullRequest
       8

Django URL Design

2 голосов
/ 13 сентября 2011

Я часто попадаю в мир, в котором я не очень уверен в URL-адресах, которые я придумал. Я думаю, что это в основном потому, что у меня есть несколько вопросов относительно дизайна URL в django, которые остаются без ответа.

Скажем, я создал публичную страницу профиля для пользователей моего сайта. Доступ к нему можно получить, указав идентификатор пользователя. Должен ли идентификатор пользователя быть частью URL (т. Е. /profile/<userid>/) или он должен быть указан в строке запроса (/profile?userid=<userid>)? И почему?

Я широко использую AJAX в своем проекте. Должны ли URL-адреса AJAX создаваться иначе, чем их аналоги? Есть ли шаблон дизайна для этой цели?

Ответы [ 3 ]

5 голосов
/ 13 сентября 2011

Здесь нет строгих правил. Я бы сказал, что все, что является достаточно статичным, должно использовать формат /profile/<userid>/. GET-параметры - ?userid=<userid> - должны быть зарезервированы для вещей, которые являются более динамичными, которые просто трудно кодировать как часть URL (например, набор поисковых терминов), или когда вам нужно несколько параметров одновременно, и они не могут сосчитать на заказ.

3 голосов
/ 13 сентября 2011

Django не рекомендует использовать строки запросов и поощряет использование красивых URL-адресов. Вам просто нужно правильно настроить их в вашем URLconf. Если вы еще не читали Книгу Джанго (свободно доступную онлайн), вам следует. Об этом говорится в главе 3 :

Слово о симпатичных URL

Если у вас есть опыт работы в другой сети Платформа разработки, такая как PHP или Java, вы можете подумать: «Эй, давайте использовать параметр строки запроса! »- что-то вроде /time/plus?hours=3, в котором часы будут обозначены Параметр hours в строке запроса URL (часть после?).

Вы можете сделать это с Джанго (и мы расскажем вам, как в Главе 7), но одна из основных философий Django заключается в том, что URL должны быть красивыми. URL /time/plus/3/ намного чище, проще, удобочитаемее, проще читать кому-то вслух и ... просто красивее, чем его запрос строковый аналог. Красивые URL-адреса являются характеристикой качественного Интернета применение.

Система URLconf в Django поддерживает красивые URL, облегчая используйте красивые URL, чем не.

В этой главе подробно рассказывается, как и зачем это делать!

2 голосов
/ 22 февраля 2012

Некоторое время назад у меня были такие же сомнения, и руководитель проекта моей компании сказал мне:

" Старайтесь избегать бесконечного количества разных URL-адресов "

Таким образом, если какой-либо параметр может генерировать URL-адреса с бесконечными отличиями, его следует отправить в качестве параметра (например, .com? Param =), например, отметку времени. Существует разное количество временных меток, поэтому это должен быть параметр.

С другой стороны, существуют ограниченные значения, например, один идентификатор объекта. Если вы вставите и идентификатор в URL, в худшем случае вы можете генерировать то же количество URL, что и идентификаторы, но не бесконечные URL. В этом случае идентификатор может быть включен в URL (например: .com / content // view)

Эта простая фраза мне очень помогла, надеюсь, вы тоже =)

...