转:https://blog.csdn.net/bjbz_cxy/article/details/79358718
关于POST和GET的请求方法和区别请参考:HTTP协议下GET与POST的区别
GET方法
首先先使用html简单编写一个表单页面
代码如下:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>GET方法传递数据(runoob.com)</title>
- </head>
- <body>
- <form action="/cgi-bin/backend_get.py" method="get">
- 数据值1: <input type="text" name="data_1"> <br />
- 数据值2: <input type="text" name="data_2" />
- <input type="submit" value="GET提交" />
- </form>
- </body>
- </html>
运行示列:
后端python代码:
- backend_get.py
- #!/usr/bin/python
- # -*- coding: UTF-8 -*-
- # 添加GI处理模块
- import cgi, cgitb
- # 创建FieldStorage的实例化
- form = cgi.FieldStorage()
- #获取html页面传递过来的数据值
- str_data_1 = form.getvalue('data_1')
- str_data_2 = form.getvalue('data_2')
- #打印输出
- print "Content-type:text/html"
- print "<html>"
- print "<head>"
- print "<meta charset=\"utf-8\">"
- print "<title>GET</title>"
- print "</head>"
- print "<body>"
- print "<h2>data_1:%s,data_2:%s</h2>" % (str_data_1, str_data_2)
- print "</body>"
- print "</html>"
写完之后别忘记给python脚本加上运行权限
别忘记sudo
- sudo chmod 755 backend_get.py
运行示列:
前端:
请求url:
- /cgi-bin/baeckend_get.py?data_1=test_1&data_2=test_2
后端输出:
- data_1:test_1,data_2:test_2
POST方法:
表单代码只需要copy一份然后修改method属性值改为post即可
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>POST方法传递数据(runoob.com)</title>
- </head>
- <body>
- <form action="/cgi-bin/hello_get.py" method="post">
- 数据值1: <input type="text" name="data_1"> <br />
- 数据值2: <input type="text" name="data_2" />
- <input type="submit" value="POST提交" />
- </form>
- </body>
- </html>
后端代码无需变更直接copy一份即可,将名字改为backend_post,py,无需给权限,copy会连同文件权限一并复制!
- #!/usr/bin/python
- # -*- coding: UTF-8 -*-
- # 添加GI处理模块
- import cgi, cgitb
- # 创建FieldStorage的实例化
- form = cgi.FieldStorage()
- #获取html页面传递过来的数据值
- str_data_1 = form.getvalue('data_1')
- str_data_2 = form.getvalue('data_2')
- #打印输出
- print "Content-type:text/html"
- print "<html>"
- print "<head>"
- print "<meta charset=\"utf-8\">"
- print "<title>POST</title>"
- print "</head>"
- print "<body>"
- print "<h2>data_1:%s,data_2:%s</h2>" % (str_data_1, str_data_2)
- print "</body>"
- print "</html>"
运行示列:
url:
- /cgi-bin/baeckend_get.py
后端输出
- data_1:test_1,data_2:test_2