Получение параметров из URL - PullRequest
131 голосов
/ 22 февраля 2011

С учетом URL, подобного следующему, как я могу проанализировать значение параметров запроса? Например, в этом случае я хочу значение def.

/abc?def='ghi'

Я использую Django в своей среде; есть ли метод для объекта request, который мог бы мне помочь?

Я пытался использовать self.request.get('def'), но он не возвращает значение ghi, как я надеялся.

Ответы [ 14 ]

3 голосов
/ 22 февраля 2011
def getParams(url):
    params = url.split("?")[1]
    params = params.split('=')
    pairs = zip(params[0::2], params[1::2])
    answer = dict((k,v) for k,v in pairs)

Надеюсь, это поможет

2 голосов
/ 21 января 2012
import cgitb
cgitb.enable()

import cgi
print "Content-Type: text/plain;charset=utf-8"
print
form = cgi.FieldStorage()
i = int(form.getvalue('a'))+int(form.getvalue('b'))
print i
1 голос
/ 12 сентября 2017

Есть хорошая библиотека w3lib.url

from w3lib.url import url_query_parameter
url = "/abc?def=ghi"
print url_query_parameter(url, 'def')
ghi
0 голосов
/ 25 июля 2012

Кстати, у меня были проблемы с использованием parse_qs () и получением пустых значений параметров, и я узнал, что вам нужно передать второй необязательный параметр keep_blank_values, чтобы получить список параметров в строке запроса, которые не содержат значений. По умолчанию используется значение false. Некоторые написанные API-интерфейсы требуют наличия параметров, даже если они не содержат значений

for k,v in urlparse.parse_qs(p.query, True).items():
  print k
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...