Django разбирает url по-разному
У меня есть url, который содержит точку с запятой: /?a=3;4
.
Я хочу, чтобы request.GET['a']
выводил 3;4
, сейчас это 3
.
Возможно ли это?
Спасибо.
Python3.8, Django 3.1
Да, в django 3.1 и python 3.8 символ ;
разрывает строку запроса.
У вас есть два способа решить эту проблему:
- Замените его на
%3B
, например,/?a=3%3B4
- Разберите строку запроса вручную
Пример разбора qs вручную:
from urllib.parse import parse_qs
query_string = request.META['QUERY_STRING']
params = parse_qs(query_string, keep_blank_values=True)
a_value = params.get('a', [''])[0]