【问题标题】:Can parse GET params from URL可以从 URL 解析 GET 参数
【发布时间】:2015-06-11 23:07:10
【问题描述】:

我有文件 test.py:

import cgi, cgitb                                      # Import modules for CGI handling    

form = cgi.FieldStorage() 
person_name = form.getvalue('person_name')


print ("Content-type:text/html\n\n")
print ("<html>")
print ("<head>")
print ("</head>")
print ("<body>")
print (" hello world <br/>")
print(person_name)
print ("</body>")
print ("</html>")

当我访问 www.myexample.com/test.py?person_name=john 时,我得到的结果是:

你好世界

没有

意味着我无法从 url 中获取参数“person_name”。

附言它在我的本地主机服务器中完美运行,但是当将其上传到在线网络服务器时,为什么无法解析来自 url 的参数。

我该如何解决?

【问题讨论】:

    标签: python python-3.x cgi


    【解决方案1】:

    然后用这个

    form_arguments = cgi.FieldStorage(environ={'REQUEST_METHOD':'GET', 'QUERY_STRING':qs})
    
    for i in form_arguments.keys():
        print form_arguments[i].value
    

    在我之前的回答中,我假设你有 webapp2。我认为这将解决您的目的。

    你也可以试试:

    import urlparse
    url = 'www.myexample.com/test.py?person_name=john'
    par = urlparse.parse_qs(urlparse.urlparse(url).query)
    
    person_name= par['person_name']
    

    要获取当前网址,请使用以下命令:

    url = os.environ['HTTP_HOST']
    uri = os.environ['REQUEST_URI']
    url = url + uri
    par = urlparse.parse_qs( urlparse.urlparse(url).query )
    

    【讨论】:

    • 它返回一个内部服务器错误。我应该导入任何东西以使其正常工作吗?
    • 我收到一个错误:“ImportError: No module named requests”。由于我在共享服务器上,所以我也无法安装此模块...请问还有其他建议吗?
    • 检查编辑后的答案,而不是打印获取您的数据(对于 i=0)。
    • 然后使用pdb,看看form是否包含任何东西。
    猜你喜欢
    • 2012-09-07
    • 2011-01-15
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    • 2015-05-09
    • 1970-01-01
    • 2014-10-28
    • 1970-01-01
    相关资源
    最近更新 更多