美文网首页程序员
Python CGI浅尝

Python CGI浅尝

作者: _青菜_ | 来源:发表于2017-08-28 10:51 被阅读58次

    前言

    Pyhton CGI是Common Gateway Interface,即通用网关接口。好吧,其实并不知道他的使用场景,我是在Python群里看见一个童鞋再问相关的问题,感觉挺好玩于是自己也尝试一下,顺便解决那个童鞋的问题。欢迎使用过的小伙伴告诉我一下使用场景。本实例基于ubuntu 16.04 ,python2.7,apache2.

    CGI coding

    1.我们写个下载的功能,

    vim download.py
    
      #!/usr/bin/python
      # -*- coding: UTF-8 -*-
      
      import cgi
      
      # HTTP 头部
      print "Content-Disposition: attachment; filename=\"foo.txt\"";
    
      # 打开文件
     fo = open("foo.txt", "rb")
     
     str = fo.read();
     print str
     
     # 关闭文件
     fo.close()
    

    2.同级目录新建一个foo.txt,在里面输入任意内容。
    3.python解释器直接运行,能够打印出txt内容即可。

    搭建apache2 cgi运行环境

    1.安装apache2

    sudo apt install -y apache2
    

    2.开启cgi

    cd /etc/apache2/sites-enabled
    sudo vim 000-default.conf
    把Include conf-available/serve-cgi-bin.conf取消注释
    
    cd ../mods-enabled
    #添加cgi模块
    sudo vim cgi.load
    写入 LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so 
    
    cd ../conf-enabled
    sudo vim serve-cgi-bin.conf
    修改:
    ScriptAlias /cgi-bin/ /var/www/cgi-bin/ 
    添加:
    AddHandler cgi-script .cgi .pl .py .sh
    见下图: 
    
    cgi.jpg

    3.创建cgi目录

    cd /var/www/
    sudo mkdir cgi-bin
    cd cgi-bin
    把之前的py和txt 拷贝进去
    #赋予权限
    sudo chmod +x *
    

    4.重启apache2

    sudo service apache2 restart
    

    打开浏览器测试

    访问地址:http://localhost/cgi-bin/download.py,自动下载了txt文件。

    结语

    猛一看浏览器直接运行py文件,有木有很高大上。感兴趣的可以尝试一下。python的web框架异彩纷呈CGI的应用场景在哪里?

    相关文章

      网友评论

        本文标题:Python CGI浅尝

        本文链接:https://www.haomeiwen.com/subject/phywdxtx.html