美文网首页
Python GET、POST传递数据

Python GET、POST传递数据

作者: S大偉 | 来源:发表于2018-11-26 17:12 被阅读25次

    注意

    • 如果运行不起来,可以修改引用路径
    • print后的空格去掉
    • chmod 755 fileName.py

    GET和POST方法

    浏览器客户端通过两种方法向服务器传递信息,这两种方法就是 GET 方法和 POST 方法。

    使用GET方法传输数据

    GET方法发送编码后的用户信息到服务端,数据信息包含在请求页面的URL上,以"?"号分割, 如下所示:

    http://www.test.com/cgi-bin/hello.py?key1=value1&key2=value2
    

    有关 GET 请求的其他一些注释:

    • GET 请求可被缓存
    • GET 请求保留在浏览器历史记录中
    • GET 请求可被收藏为书签
    • GET 请求不应在处理敏感数据时使用
    • GET 请求有长度限制
    • GET 请求只应当用于取回数据

    简单的url实例:GET方法

    以下是一个简单的URL,使用GET方法向hello_get.py程序发送两个参数:

    /cgi-bin/test.py?name=name&url=http://www.test.com
    

    hello_get.py文件的代码:

    #!/usr/bin/python3
    
    # CGI处理模块
    import cgi, cgitb 
    
    # 创建 FieldStorage 的实例化
    form = cgi.FieldStorage() 
    
    # 获取数据
    site_name = form.getvalue('name')
    site_url  = form.getvalue('url')
    
    print ("Content-type:text/html")
    print ()
    print ("<html>")
    print ("<head>")
    print ("<meta charset=\"utf-8\">")
    print ("<title>菜鸟教程 CGI 测试实例</title>")
    print ("</head>")
    print ("<body>")
    print ("<h2>%s官网:%s</h2>" % (site_name, site_url))
    print ("</body>")
    print ("</html>")
    

    文件保存后修改 hello_get.py,修改文件权限为 755:

    chmod 755 hello_get.py
    
    hello_Get.png

    简单的表单实例:GET方法

    以下是一个通过HTML的表单使用GET方法向服务器发送两个数据,提交的服务器脚本同样是hello_get.py文件,hello_get.html 代码如下:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>菜鸟教程(runoob.com)</title>
    </head>
    <body>
    <form action="/cgi-bin/hello_get.py" method="get">
    站点名称: <input type="text" name="name">  <br />
    
    站点 URL: <input type="text" name="url" />
    <input type="submit" value="提交" />
    </form>
    </body>
    </html>
    

    默认情况下 cgi-bin 目录只能存放脚本文件,我们将 hello_get.html 存储在 test 目录下,修改文件权限为 755:

    根据你保存的路径写
    http://localhost/learn/helloGet.html
    
    helloGetLocal.png

    效果如下


    html.png py.png

    使用POST方法传递数据

    使用POST方法向服务器传递数据是更安全可靠的,像一些敏感信息如用户密码等需要使用POST传输数据。

    • 同样是hello_get.py ,它也可以处理浏览器提交的POST表单数据
    • 为表单通过POST方法(method="post")向服务器脚本 hello_get.py 提交数据
    #对于上述两个文件,只需修改这个
    <form action="/cgi-bin/helloGet.py" method="post">
    
    postHtml.png postPy.png

    相关文章

      网友评论

          本文标题:Python GET、POST传递数据

          本文链接:https://www.haomeiwen.com/subject/zzqsqqtx.html