Rails или URL-адреса в стиле web2py в Django - PullRequest
1 голос
/ 11 августа 2011

Я новичок в Джанго. Кажется, что Django требует определить одно правило отображения URL для каждого контроллера / действия (view / function в терминах Django). Какой самый простой способ реализовать маршрутизацию URL в стиле Rails или, по крайней мере, маршрутизацию URL в стиле web2py?


Для тех, кто не знает, что такое Rails или маршрутизация URL в стиле web2py.

Ответы [ 3 ]

2 голосов
/ 11 августа 2011

То, что вы пытаетесь сделать, явно противоречит Философия дизайна Django : «Привязка URL-адресов к именам функций Python - это плохо и безобразно».Поэтому я думаю, что у вас есть два простых выбора и один сложный.

Легко # 1: придерживаться рельсов

Легко # 2: Используйте django, как обычно используется django: одно правило URL на представление.

Сложно: написать общий диспетчер URL-адресов, который использует самоанализ для поиска методов просмотра на основе URL-адресов.Будьте очень осторожны, делая это безопасно.И поделиться им, когда вы закончите.:)

Не говорю, что ты не должен этого делать.Но если вы ищете простой способ сделать это, я подозреваю, вы будете разочарованы.

1 голос
/ 11 августа 2011

Вы можете легко написать это по-своему - напишите одно представление, которое принимает URL-адрес и анализирует его. Затем он загружает модуль, который вы хотите. Тогда у вас будет только одно правило в файле urls.py, которое вызовет только одну функцию просмотра.

Также вы можете создать промежуточное ПО, вероятно, для решения возникшей проблемы ....

Но я бы не рекомендовал это делать, и я думаю, что лучше придерживаться стиля маршрутизации, который использует Django. Зачем? Поскольку позже вам придется подумать о пользовательских средствах разрешения URL-адресов, вы не сможете использовать, например, тег шаблона {% url%} (хотя вы также не будете настраивать его). Я думаю, что здесь не стоит что-то изобретать ... Но это только мое мнение, это вы сами решаете:)

Веселись :)

0 голосов
/ 11 августа 2011

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

Если вы смотрите на REST, то я бы порекомендовал взглянуть на эту статью .

...