Как мне преобразовать эту длинную и сложную строку запроса URL в стиле PHP в URL Django? - PullRequest
3 голосов
/ 11 января 2010

Я конвертирую небольшое PHP-приложение в Django.

В одном разделе есть длинная строка запроса, указывающая, как должен отображаться виджет. Есть несколько обязательных параметров и несколько необязательных.

Текущие URL читаются как:

app.php?id=102030&size=large&auto=0&bw=1&extra=1

Идентификатор и размер обязательны, но auto, bw и extra не обязательны. Я использую значения по умолчанию, если они не указаны.

Моей первой идеей было создать шаблон URL django с необходимой информацией, идентификатором и размером:

url(r'^/app/(P?<id>)\d+/(P?<size>)\w+$',app.project.views.widget,name='swidget')

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

/app/102030/large?auto=0&bw=1&extra=0

Является ли общепринятой практикой смешивать параметры GET с параметрами, определенными в URL conf в Django? Или я должен сделать это как

url(r'^/app/(P?<id>)\d+/(P?<size>)\w+/(P?<auto>)\d/(P?<bw>)\d/(P?<extra>)\d[/]?,'app.project.views.widget,name='swidget')
#so it would look like:
/app/102030/large/0/1/0/

Будем благодарны за любые предложения относительно лучших практик или вопросов, которые следует учитывать при любом стиле!

1 Ответ

9 голосов
/ 11 января 2010

Если вы считаете, что «URL» обозначает Унифицированный Ресурс Локатор, URL должен только указывать отображаемый ресурс, а любые параметры «конфигурации» должны передаваться как параметры. Итак, я думаю, ваша первая идея в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...