CGI基础
- 用户访问网站,看到一个使用HTML编码的表单,在他或者她的浏览器中填写这个表单。表单提交后,服务器会根据表单或连接服务器的地址来确定运行某个脚本,并生成另一个HTML页面作为响应。
- 数据通常在三个程序中传递:从客户端浏览器开始,到web服务器,再到CGI脚本,然后返回浏览器。用户向服务器提交数据库的键,得到相应的记录作为回复
编写一个HTML文件生成一个表单
-
CGI\cgi101.html
<html> <title>Interactive Page</title> <body> <form method=POST action="cgi-bin/cgi101.py"> <P><B>Enter your name:</B> <P><input type=text name=user> <P><input type=submit> </form> </body></html>
#注意开始的action属性,指定了服务器处理表单输入的脚本
-
请求该网页的url,浏览器将显示这段代码生成的输入表单
编写脚本
-
表单提交后,Web服务器会解析这个请求,然后运行下面的脚本,这个Python脚本和HTML文件一样都存储在Web服务器运行的机器上,它运行在服务器上,处理输入并为客户端浏览器生成响应。
-
CGI\cgi-bin\cgi101.py
import cgi form = cgi.FieldStorage() # 解析表单数据 # hdr加回车 print('Content-type: text/html\n') print('<title>Reply Page</title>') if not 'user' in form: print('<h1>Who are you?</h1>') else: print('<h1>Hello <i>%s</i>!</h1>' % cgi.escape(form['user'].value))
出现错误,无法找到网页
解决
1、修改服务器端口号
-
命令行cd 到当前项目所在的文件中(即cgi-bin文件所在的目录)输入下方指令
python -m http.server --cgi 8081
-
出现如下的代码则成功
2、修改HTML文件中的action属性 -
修改的代码段如下
<form method=POST action="http://localhost:8081/cgi-bin/cgi101.py">
再次提交表单
- 点击提交后