Python相当于基于Perl函数的cgi样式

时间:2018-01-13 09:11:40

标签: python perl cgi

我被教导使用Perl cgi(CGI(':标准')),如下所示:

#!/usr/local/bin/perl
use CGI qw/:standard/;           # load standard CGI routines
print header,                    # create the HTTP header
      start_html('hello world'), # start the HTML
      h1('hello world'),         # level 1 header
      end_html;                  # end the HTML

当转移到Python时,我发现我必须这样做:

#!/usr/bin/python
print "Content-type:text/html\r\n\r\n"
print '<html>'
print '<head>'
print '<title>Hello Word</title>'
print '</head>'
print '<body>'
print '<h1>Hello Word!</h1>'
print '</body>'
print '</html>'

在Perl中,使用Python可以实现基于函数的cgi方法吗?您在尝试创建此类软件包时会遇到哪些主要挑战(如果不存在)?

1 个答案:

答案 0 :(得分:1)

这是使用bottle Python web framework以“基于函数”的方式编写的CGI脚本:

#!/usr/bin/env python
from bottle import route, run, template

@route('/hello/<name>')
def index(name):
    return template('<b>Hello {{name}}</b>!', name=name)

run(server='cgi') # transform the application into a valid CGI script

要安装bottle模块,请运行常规pip install bottledownload a single bottle.py file

要尝试它,请使脚本可执行:

$ chmod +x cgi-bin/cgi-script

在当前目录中启动[开发] CGI服务器:

$ python3 -mhttp.server --cgi --bind localhost

打开页面:

$ python -mwebbrowser http://localhost:8000/cgi-bin/cgi-script/hello/World

除非您必须使用CGI,否则请考虑其他deployment options