#python #django #django-rest-framework
#python #django #django-rest-framework
Вопрос:
Я только начинаю работать с Django Rest Framework и создал свои первые конечные точки. Теперь я пытаюсь добавить фильтрацию к своим URL-адресам, но есть две вещи, которые я пока не понимаю:
-
Я создал следующий маршрут:
router.register(r'endpoint', views.myView, basename='myView')
. Когда я пытаюсь выполнить фильтрацию в своем браузере, как показано нижеhttp://127.0.0.1:8000/api/endpoint?amp;user=TEST
, я буду перенаправлен наhttp://127.0.0.1:8000/api/endpoint/?amp;user=TEST
. Почему перед символом стоит косая?
черта? -
В чем разница между использованием
router.register
и стандартным представлением на моемurlpatterns
, как я бы сделал в Django?
Комментарии:
1. Есть параметр Django, который определяет, добавляет ли он косую черту к URL-адресам или нет: docs.djangoproject.com/en/3.1/ref/settings/#append-slash
Ответ №1:
-
Потому что значение по умолчанию
APPEND_SLASH
равноTrue
и, следовательно, перенаправление. -
Маршрутизаторы DRF будут генерировать соответствующие шаблоны URL-адресов в зависимости от того, какой тип маршрутизатора (SimpleRouter или DefaultRouter ) вы используете. Настоятельно рекомендую использовать вместе с наборами представлений DRF
Комментарии:
1. Большое спасибо за ваш ответ, он очень понятен. Что произойдет, если я установлю для APPEND_SLASH значение False? Это плохая практика?
2. Я хотел бы установить
APPEND_SLASH=True
(настройку по умолчанию), и я бы не стал определять какие-либо конечные точки без завершающей косой черты