Python CGI编程中GET和POST的区别是什么?

Python CGI编程中GET和POST的区别是什么?

阅读更多:Python 教程

GET和POST方法

在从浏览器传递信息到Web服务器以及最终到CGI程序的许多情况下,您必须使用两种方法中的一种。这些方法是GET方法和POST方法。

使用GET方法传递信息

GET方法将编码的用户信息附加到页面请求中。页面和编码的信息由?字符分隔,如下所示−

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

GET方法是从浏览器向Web服务器传递信息的默认方法,它生成一个长字符串,出现在浏览器的位置框中。如果你需要传递密码或其他敏感信息,请勿使用GET方法。GET方法有大小限制:请求字符串中只能发送1024个字符。 GET方法使用QUERY_STRING头发送信息,并可以通过QUERY_STRING环境变量在您的CGI程序中被访问。

您可以通过简单地连接键和值对以及任何URL来传递信息,或者您可以使用HTML

标记使用GET方法传递信息。

简单的URL示例- Get方法

这是一个简单的URL,使用GET方法向hello_get.py程序传递两个值。

/cgi-bin/hello_get.py?first_name=ZARA&last_name=ALI

下面是处理Web浏览器输入的hello_get.py脚本。我们将使用cgi模块,这使得访问传递的信息非常容易-

#!/usr/bin/python
# 导入CGI处理的模块
import cgi, cgitb
# 创建FieldStorage实例
form = cgi.FieldStorage()
# 获取字段数据
first_name = form.getvalue('first_name')
last_name  = form.getvalue('last_name')
print "Content-type:text/html\r\n\r\n"
print "<html>"
print "<head>"
print "<title>Hello - Second CGI Program</title>"
print "</head>"
print "<body>"
print "<h2>Hello %s %s</h2>" % (first_name, last_name)
print "</body>"
print "</html>"

这将生成以下结果−

Hello ZARA ALI

简单的HTML FORM示例 – GET方法

该示例使用HTML FORM和提交按钮传递两个值。我们使用相同的CGI脚本hello_get.py来处理此输入。

<form action = "/cgi-bin/hello_get.py" method = "get">
名:<input type = "text" name = "first_name">  <br />
姓:<input type = "text" name = "last_name" />
<input type = "submit" value = "提交" />
</form>

这是上述表单的实际输出,您输入名和姓,然后单击提交按钮以查看结果。

名:
姓:
 提交

使用POST方法传递信息

将信息传递给CGI程序的一种通常更可靠的方法是POST方法。它与GET方法以完全相同的方式将信息打包,但是它不是将其作为URL中?后面的文本字符串发送,而是将其作为单独的消息发送。这个消息以标准输入的形式进入CGI脚本。

下面是相同的hello_get.py脚本,它处理GET和POST方法。

#!/usr/bin/python
# 导入用于CGI处理的模块
import cgi, cgitb
# 创建FieldStorage实例
form = cgi.FieldStorage()
# 从字段中获取数据
first_name = form.getvalue('first_name')
last_name  = form.getvalue('last_name')
print "Content-type:text/html\r\n\r\n"
print "<html>"
print "<head>"
print "<title>你好 - 第二个CGI程序</title>"
print "</head>"
print "<body>"
print "<h2>你好%s%s</h2>" % (first_name, last_name)
print "</body>"
print "</html>"

让我们再次采用上面的示例,使用HTML FORM和提交按钮传递两个值。我们使用相同的CGI脚本hello_get.py来处理此输入。

<form action = "/cgi-bin/hello_get.py" method = "post">
名字:<input type = "text" name = "first_name"><br />
姓氏:<input type = "text" name = "last_name" />
<input type = "submit" value = "提交" />
</form>

这是上面表单的实际输出。你输入名字和姓氏,然后点击提交按钮来查看结果。

名字:
姓氏:
 提交

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程