zoukankan      html  css  js  c++  java
  • python基础(五)——CGI编程

    使用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"
    print
    print "<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"
    print
    print "<html>"
    print "<head>"
    print "<meta charset="utf-8">"
    print "<title>菜鸟教程 CGI 测试实例</title>"
    print "</head>"
    print "<body>"
    print "<h2> 菜鸟教程是否选择了 : %s</h2>" % runoob_flag
    print "<h2> Google 是否选择了 : %s</h2>" % google_flag
    print "</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"
    print
    print "<html>"
    print "<head>"
    print "<meta charset="utf-8">"
    print "<title>菜鸟教程 CGI 测试实例</title>"
    print "</head>"
    print "<body>"
    print "<h2> 选中的网站是 %s</h2>" % site
    print "</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"
    print
    print "<html>"
    print "<head>";
    print "<meta charset="utf-8">"
    print "<title>菜鸟教程 CGI 测试实例</title>"
    print "</head>"
    print "<body>"
    print "<h2> 输入的内容是:%s</h2>" % text_content
    print "</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"
    print
    print "<html>"
    print "<head>"
    print "<meta charset="utf-8">"
    print "<title>菜鸟教程 CGI 测试实例</title>"
    print "</head>"
    print "<body>"
    print "<h2> 选中的选项是:%s</h2>" % dropdown_value
    print "</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'
    print
    print """
    <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 os
    import Cookie
    
    print "Content-type: text/html"
    print
    
    print """
    <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, os
    import 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
    
    <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()
  • 相关阅读:
    1 Anytao系列文章
    arraylist使用
    安装SQL 2005 的前提条件
    div+css
    Web MVC框架的三种类型
    使用javascript做页面间传值
    应用程序框架设计
    利用UrlRewrite,asp.net动态生成htm页面
    收集
    dwr配置
  • 原文地址:https://www.cnblogs.com/biaopei/p/7730578.html
Copyright © 2011-2022 走看看