Is it possible to get values from query string wit

2019-06-28 05:40发布

问题:

I want to know if it's possible to get values from this query string?

'?agencyID=1&agencyID=2&agencyID=3'  

Why I have to use a query string like this?
I have a form with 10 check boxes. my user should send me ID of news agencies which he/she is interested in. so to query string contains of multiple values with the same name. total count of news agencies are variable and they are loaded from database.
I'm using Python Tornado to parse query strings.

回答1:

Reading the tornado docs, this seems to do what you want

RequestHandler.get_arguments(name, strip=True)

Returns a list of the arguments with the given name. If the argument is not present, returns an empty list. The returned values are always unicode.

So like this

ids = self.get_arguments('agencyID')

Note that here i used get_arguments, there is also a get_argument but that gets only a single argument.


You can get the whole query with

query = self.request.query


回答2:

>>> from urlparse import urlparse, parse_qs
>>> url = '?agencyID=1&agencyID=2&agencyID=3' 
>>> parse_qs(urlparse(url).query)
{'agencyID': ['1', '2', '3']}


回答3:

tornado.web.RequestHandler has two methods to get arguments:

  • get_argument(id), which will get the last argument with name 'id'.
  • get_arguments(id), which will get all arguments with name 'id' into a list even if there is only one.

So, maybe get_arguments is what you need.