Is it possible to get values from query string wit

2019-06-28 05:17发布

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.

3条回答
疯言疯语
2楼-- · 2019-06-28 05:32

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
查看更多
疯言疯语
3楼-- · 2019-06-28 05:34
>>> from urlparse import urlparse, parse_qs
>>> url = '?agencyID=1&agencyID=2&agencyID=3' 
>>> parse_qs(urlparse(url).query)
{'agencyID': ['1', '2', '3']}
查看更多
欢心
4楼-- · 2019-06-28 05:35

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.

查看更多
登录 后发表回答