#python #django #url
Вопрос:
Не удается сопоставить регулярное выражение для URL-адреса django, вам нужно обработать входящий запрос с интерфейса
"GET /api/city_list/9/?q=test HTTP/1.0" 404 Not Found
"GET /api/city_list/9/?q=tt HTTP/1.0" 404 Not Found
Я попробовал несколько вариантов
path('api/city_list/<int:id>/?q=<str:q>', api_city_list, name='api_city_list'),
не работает
re_path(r'^api/city_list/d /?|amp;q=w', api_city_list, name='api_city_list'),
не работает
re_path(r'^api/city_list/<int:id>/(?P<q>D )', api_city_list, name='api_city_list'),
не работает
views.py не доходит до отладчика.
сбой проверки URL-адресов
Друзья, подскажите, как это сделать, иначе я уже путаюсь с регулярными выражениями для Django
(Джанго 3.1)
Ответ №1:
Вам не нужно добавлять строку запроса, соответствующую вашим URL-адресам, поэтому вы можете изменить URL-адрес на просто:
path('api/city_list/<int:id>/', api_city_list, name='api_city_list'),
Затем, по вашему мнению, если вы хотите получить доступ к параметрам запроса, вы можете использовать request.GET
.
def api_city_list(request, id):
q = request.GET.get('q')
...
Все параметры запроса в этом URL-адресе будут автоматически переданы request.GET
, поэтому нет необходимости сопоставлять их с настройками вашего URL-адреса.
Комментарии:
1. Что не работает? Конфигурация URL — адреса, которой я поделился, не была частью того, что вы пытались сделать в своем вопросе.