Лучший способ получить строку запроса из URL-адреса в python?

У меня есть этот url = https://stackoverflow.com/questions/ask?next=1&value=3 Теперь мне нужно получить строку запроса из этого URL-адреса. Я не хочу использовать request.META для получения строки запроса. Как бы то ни было, я понял, что есть еще два способа получить строку запроса

  1. Использование urlparse Используйте urlparse.urlparse (url) .query dats it

  2. Использование url encode Используйте urlencode и передайте в него параметр param. request.GET params, чтобы получить его строковое представление ….

Так какой способ лучше получить строку запроса …? Некоторые из моих коллег говорят, что urlencode намного лучше, однако я не доволен там, где есть ответы. Например, они упомянули, что urlparse также вызывает urlencode. Даже в этом случае у меня есть сомнения, поскольку я считаю, что urlparse и urlencode полностью независимы .as urlencode находится в модуле urllib …. пожалуйста, проясните эту вещь.

Вы можете создать строку запроса с использованием параметров GET, подобных этому

request.GET.urlencode() 

Это не включает ? префикс, и он может не возвращать ключи в том же порядке, что и в исходном запросе.

Третий вариант:

 >>> from urlparse import urlparse, parse_qs >>> url = 'http://something.com?blah=1&x=2' >>> urlparse(url).query 'blah=1&x=2' >>> parse_qs(urlparse(url).query) {'blah': ['1'], 'x': ['2']} 

Я предпочитаю использовать

 request.META['QUERY_STRING'] 

Из документов:

https://docs.djangoproject.com/en/stable/ref/request-response/#django.http.HttpRequest.META

Это не включает ? префикс.