cgi.parse_qs的目的

时间:2014-09-18 10:39:59

标签: python python-2.7 mod-wsgi wsgi

假设这是网址

 domaint.tld/script?i=abc

这是剧本:

from cgi import parse_qs

def application(environ, start_response):

    a = parse_qs(environ['QUERY_STRING'])
    a = a.get('i', [''])[0]

    start_response('200 OK', [('Content-Type', 'text/html')])
    yield a

输出是:

 abc

但是网址实际上看起来更短......就像这样。

  domaint.tld/script?abc

并且wsgi脚本甚至可以更快我认为它不需要导入任何东西..

def application(environ, start_response):
    a = environ['QUERY_STRING']
    start_response('200 OK', [('Content-Type', 'text/html')])
    yield a

输出与上面相同..

 abc

是否有人应该使用带有=标志和变量名称的URL? 什么时候可以这样做,看起来更健壮?

2 个答案:

答案 0 :(得分:0)

此函数的目的确实是解析更复杂的查询字符串,例如

i=3&j=5&...

用于传递多个值。

如果你只有一个值,那就太过分了。

答案 1 :(得分:0)

name=value表单是标准,由任何提交表单的浏览器生成。

您可以在此自由使用自己的格式,但是当您使用 HTML表单标记时,您的浏览器将使用HTML标准生成查询字符串以生成查询字符串字段和每个字段之间的&个分隔符表示为name=value对。

因此,如果您可以完全控制URL的生成方式,并且只需传递一个值,则只需使用?value表单即可。如果您正在处理旨在生成相同格式的表单或工具,请坚持使用parse_qs