python基础(五)——CGI编程

来源:互联网 发布:mac里的照片和相簿 编辑:程序博客网 时间:2024/06/03 13:53

使用python实现get方法和post方法传值,多选按钮,单选按钮、文本编辑区、下拉列表数据的传递,cookie的设置文件上传,文件下载。本文未经整理,仅供参考

#!/usr/bin/python# -*- coding: UTF-8 -*-print "Content-type:text/html"print                               # 空行,告诉服务器结束头部print '<html>'print '<head>'print '<meta charset="utf-8">'print '<title>Hello Word - 我的第一个 CGI 程序!</title>'print '</head>'print '<body>'print '<h2>Hello Word! 我是来自菜鸟教程的第一CGI程序</h2>'print '</body>'print '</html>'开启httpd服务器后,可以直接把该文件放到网站目录下,浏览器访问会正常显示该页面//网页传值//test.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>//hello_get.py代码#!/usr/bin/python# -*- coding: UTF-8 -*-# filename:test.py# CGI处理模块import cgi, cgitb # 创建 FieldStorage 的实例化form = cgi.FieldStorage() # 获取数据site_name = form.getvalue('name')site_url  = form.getvalue('url')print "Content-type:text/html"printprint "<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>"//如果想把上面的get方法修改为post方法,只需要把get改为post,后一种方法更加安全,不会在网址那里显示出密码//传递checkbox数据<!DOCTYPE html><html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title></head><body><form action="/cgi-bin/checkbox.py" method="POST" target="_blank"><input type="checkbox" name="runoob" value="on" /> 菜鸟教程<input type="checkbox" name="google" value="on" /> Google<input type="submit" value="选择站点" /></form></body></html>#!/usr/bin/python# -*- coding: UTF-8 -*-# 引入 CGI 处理模块 import cgi, cgitb # 创建 FieldStorage的实例 form = cgi.FieldStorage() # 接收字段数据if form.getvalue('google'):   google_flag = "是"else:   google_flag = "否"if form.getvalue('runoob'):   runoob_flag = "是"else:   runoob_flag = "否"print "Content-type:text/html"printprint "<html>"print "<head>"print "<meta charset=\"utf-8\">"print "<title>菜鸟教程 CGI 测试实例</title>"print "</head>"print "<body>"print "<h2> 菜鸟教程是否选择了 : %s</h2>" % runoob_flagprint "<h2> Google 是否选择了 : %s</h2>" % google_flagprint "</body>"print "</html>"//传递radio数据<!DOCTYPE html><html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title></head><body><form action="/cgi-bin/radiobutton.py" method="post" target="_blank"><input type="radio" name="site" value="runoob" /> 菜鸟教程<input type="radio" name="site" value="google" /> Google<input type="submit" value="提交" /></form></body></html>#!/usr/bin/python# -*- coding: UTF-8 -*-# 引入 CGI 处理模块 import cgi, cgitb # 创建 FieldStorage的实例 form = cgi.FieldStorage() # 接收字段数据if form.getvalue('site'):   site = form.getvalue('site')else:   site = "提交数据为空"print "Content-type:text/html"printprint "<html>"print "<head>"print "<meta charset=\"utf-8\">"print "<title>菜鸟教程 CGI 测试实例</title>"print "</head>"print "<body>"print "<h2> 选中的网站是 %s</h2>" % siteprint "</body>"print "</html>"//传递Textarea数据<!DOCTYPE html><html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title></head><body><form action="/cgi-bin/textarea.py" method="post" target="_blank"><textarea name="textcontent" cols="40" rows="4">在这里输入内容...</textarea><input type="submit" value="提交" /></form></body></html>#!/usr/bin/python# -*- coding: UTF-8 -*-# 引入 CGI 处理模块 import cgi, cgitb # 创建 FieldStorage的实例 form = cgi.FieldStorage() # 接收字段数据if form.getvalue('textcontent'):   text_content = form.getvalue('textcontent')else:   text_content = "没有内容"print "Content-type:text/html"printprint "<html>"print "<head>";print "<meta charset=\"utf-8\">"print "<title>菜鸟教程 CGI 测试实例</title>"print "</head>"print "<body>"print "<h2> 输入的内容是:%s</h2>" % text_contentprint "</body>"print "</html>"//传递下拉数据<!DOCTYPE html><html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title></head><body><form action="/cgi-bin/dropdown.py" method="post" target="_blank"><select name="dropdown"><option value="runoob" selected>菜鸟教程</option><option value="google">Google</option></select><input type="submit" value="提交"/></form></body></html>#!/usr/bin/python# -*- coding: UTF-8 -*-# 引入 CGI 处理模块 import cgi, cgitb # 创建 FieldStorage的实例 form = cgi.FieldStorage() # 接收字段数据if form.getvalue('dropdown'):   dropdown_value = form.getvalue('dropdown')else:   dropdown_value = "没有内容"print "Content-type:text/html"printprint "<html>"print "<head>"print "<meta charset=\"utf-8\">"print "<title>菜鸟教程 CGI 测试实例</title>"print "</head>"print "<body>"print "<h2> 选中的选项是:%s</h2>" % dropdown_valueprint "</body>"print "</html>"//cookie的设置#!/usr/bin/python# -*- coding: UTF-8 -*-# print 'Content-Type: text/html'print 'Set-Cookie: name="菜鸟教程";expires=Wed, 28 Aug 2016 18:30:00 GMT'printprint """<html>    <head>        <meta charset="utf-8">        <title>菜鸟教程(runoob.com)</title>    </head>    <body>        <h1>Cookie set OK!</h1>    </body></html>"""#!/usr/bin/python# -*- coding: UTF-8 -*-# 导入模块import osimport Cookieprint "Content-type: text/html"printprint """<html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title></head><body><h1>读取cookie信息</h1>"""if 'HTTP_COOKIE' in os.environ:    cookie_string=os.environ.get('HTTP_COOKIE')    c=Cookie.SimpleCookie()    c.load(cookie_string)    try:        data=c['name'].value        print "cookie data: "+data+"<br>"    except KeyError:        print "cookie 没有设置或者已过去<br>"print """</body></html>"""//文件上传<!DOCTYPE html><html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title></head><body> <form enctype="multipart/form-data"                      action="/cgi-bin/save_file.py" method="post">   <p>选中文件: <input type="file" name="filename" /></p>   <p><input type="submit" value="上传" /></p>   </form></body></html>#!/usr/bin/python# -*- coding: UTF-8 -*-import cgi, osimport cgitb; cgitb.enable()form = cgi.FieldStorage()# 获取文件名fileitem = form['filename']# 检测文件是否上传if fileitem.filename:   # 设置文件路径    fn = os.path.basename(fileitem.filename)       //linux和unix系统需要把这句修改为fn = os.path.basename(fileitem.filename.replace("\\", "/" ))   open('/tmp/' + fn, 'wb').write(fileitem.file.read())   message = '文件 "' + fn + '" 上传成功'else:   message = '文件没有上传'print """\Content-Type: text/html\n<html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title></head><body>   <p>%s</p></body></html>""" % (message,)//文件下载#!/usr/bin/python# -*- coding: UTF-8 -*-# HTTP 头部print "Content-Disposition: attachment; filename=\"foo.txt\"";print# 打开文件fo = open("foo.txt", "rb")str = fo.read();print str# 关闭文件fo.close()
原创粉丝点击