поиск пути запроса get с использованием повторного питона - PullRequest
0 голосов
/ 30 января 2019

ну, я хочу создать http-сервер, используя python, поэтому я обрабатываю клиента и все такое, и я хочу получить путь запроса, используя регулярное выражение, если запрос прост, как

GET / HTTP/1.1
OR
GET /TEST.PNG HTTP/1.1

так что нет проблем с получением регулярного выражения для этого регулярного выражения

"GET(.+)HTTP/1.1"

Проблема в том, что в запросе get есть параметры, такие как

GET /index?test=test HTTP/1.1

У меня проблемы только с получениемпуть и список параметров, использующих re или когда-либо другой метод, действительно параметры могут быть все, что идет после?до HTTP / 1.1 и затем использовать функцию split с «&», так что в запросе содержится более одного параметра, вот как я получаю их список, но у меня нет времени для точного определения пути и параметров и разделения их благодарявсе помощники и все, кто может мне помочь с регулярным выражением

1 Ответ

0 голосов
/ 30 января 2019

Вы можете использовать urlparse из стандартной библиотеки Python.

import urlparse

http_request = 'GET /index?test=foo&bar=qux HTTP/1.1'
url_parts = urlparse.urlparse(http_request.split(' ')[1])
query_params = urlparse.parse_qs(url_parts.query)

# url_parts.path == '/index'
# query_params == {'test': ['foo'], 'bar': ['qux']}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...