Лучший способ получить строку запроса из URL-адреса в python?
У меня есть этот url = https://stackoverflow.com/questions/ask?next=1&value=3 Теперь мне нужно получить строку запроса из этого URL-адреса. Я не хочу использовать request.META для получения строки запроса. Как бы то ни было, я понял, что есть еще два способа получить строку запроса
-
Использование urlparse Используйте urlparse.urlparse (url) .query dats it
-
Использование url encode Используйте urlencode и передайте в него параметр param. request.GET params, чтобы получить его строковое представление ….
Так какой способ лучше получить строку запроса …? Некоторые из моих коллег говорят, что urlencode намного лучше, однако я не доволен там, где есть ответы. Например, они упомянули, что urlparse также вызывает urlencode. Даже в этом случае у меня есть сомнения, поскольку я считаю, что urlparse и urlencode полностью независимы .as urlencode находится в модуле urllib …. пожалуйста, проясните эту вещь.
- Как Python OOP сравнивается с PHP OOP?
- Сравнение двух полей фильтра django
- Нечувствительное к регистру сравнение наборов в Python
- Целочисленный диапазон числа сравнения в Python
- (На английском, Perl, Python, Ruby) сравнение по фрагменту по фрагменту кода?
Вы можете создать строку запроса с использованием параметров 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
Это не включает ?
префикс.
- Является ли обработка исключений python более эффективной, чем PHP и / или другие языки?
- Проблемы с соединением с SQLAlchemy и несколькими процессами
- Сравнение списка разных размеров и данных для вывода разницы
- Каковы основные различия в объектных моделях динамических языков, таких как Smalltalk, Ruby и Python
- Как сравнить результаты двух файлов CSV в Python с DictReader или Pandas? (Открыта для любых других методов!)
- используя bisect в списке кортежей, но сравните, используя только первое значение
- Python: слияние словаря путем обновления, но не перезаписи, если существует значение
- Как сравнить словари внутри списков
- Как инструмент тестирования графического интерфейса пользователя PyUseCase сравнивается с Dogtail?
- Сравните 2 .csv-файлы с Python, затем выводят результаты
- Поиск определенных столбцов таблицы для несоответствующих элементов