📜  Python中的 CGI 是什么?

📅  最后修改于: 2022-05-13 01:54:24.589000             🧑  作者: Mango

Python中的 CGI 是什么?

CGI代表Python中的通用网关接口,它是一组标准,用于解释 Web 服务器和例程脚本之间如何交换信息或数据。 Web 服务器使用此接口来路由浏览器提供的信息请求,或者我们可以说 CGI 习惯于外部网关程序与信息服务器(例如 HTTP 服务器)交互。
CGI 脚本由 HTTP 服务器调用,通常用于处理通过 HTML

元素提交的用户输入。

CGI 的概念

每当我们单击超链接浏览特定网页或 URL 时,我们的浏览器都会与 HTTP Web 服务器交互并请求相同的 URL(或文件名)。然后,Web 服务器解析 URL 并查找相同的文件名。如果找到该文件,则将该文件发送回浏览器,否则,将发送一条错误消息,指示我们需要错误的文件。 Web 浏览器从 Web 服务器获取响应并显示它,然后是从 Web 服务器接收到的文件还是错误消息。但是,相反,可以设置 HTTP 服务器,以便每当请求特定文件时,该文件不会被发回,而是作为程序执行,并且无论该程序输出是什么,都会发送返回我们的浏览器进行显示。同样的函数称为通用网关接口(或 CGI) ,执行的程序称为 CGI 脚本。在Python中,这些 CGI 程序是Python Script。

CGI的架构:

例子:
让我们使用 GET 方法将两个值传递给 first_cgi.py 程序的示例 URL:
/cgi-bin/first_cgi.py?your_name=Piyush&company_name=GeeksforGeeks

下面是处理上述示例 URL 给出的输入的first_cgi.py脚本。在这里,我们将使用 cgi 模块,这将使访问传递的信息变得非常容易

Python3
#!/usr/bin/python
  
# Import CGI and CGIT module
import cgi, cgitb              
  
# to create instance of FieldStorage 
# class which we can use to work 
# with the submitted form data
form = cgi.FieldStorage()      
your_name = form.getvalue('your_name')    
  
# to get the data from fields
comapny_name = form.getvalue('company_name')   
  
print ("Content-type:text/html\n")
print ("")
print ("")
print ("First CGI Program")
print ("")
print ("")
print ("

Hello, %s is working in %s

"         % (your_name, company_name))    print ("") print ("")


输出:

Hello, Piyush is working in GeeksforGeeks