学习Python中CGI编程的好资源有哪些?

5 投票
3 回答
1966 浏览
提问于 2025-04-11 09:30

我需要为一个运行在单板计算机上的应用程序写一个浏览器界面(如果你感兴趣的话,可以看看Gumstix Verdex)。由于空间和处理器的限制,我不能使用任何网络框架(而且我所处的环境也不支持这些框架)。我只能使用核心的Python和cgi模块来创建网页,以便与一个C++应用程序进行通信。

有没有人能推荐一些好的学习Python中CGI编程的资源(可以是网站或书籍,书籍更好)?

我需要这个应用程序做的事情其实很简单。我有一个C++程序在同一个设备上运行,我需要创建一个基于浏览器的用户界面,以便可以更改该应用程序的配置设置。这个用户界面需要与C++应用程序进行通信,最终的数据验证将在应用程序中完成。初步的验证可以在用户界面上使用Javascript进行,然后在服务器上使用Python再验证一次,但最终的验证必须在应用程序本身中完成,因为它的初始配置反正是从一个文件中读取的。配置数据可以有多种形式(布尔值、整数、浮点数和字符串)。

3 个回答

1

我不太明白你为什么坚持使用CGI,因为CGI是一个常用的网关接口,通常是和像apache这样的网络服务器一起使用的,而你设备上肯定没有这个服务器。

我建议你使用 wsgiref.simple_server,这是从Python 2.5开始自带的一个单线程的内置网络服务器(如果你用的是2.4或更早的版本,可以从pypi下载wsgiref,这是一个纯Python的包)。这样你就可以避免麻烦的CGI编程,直接写一个wsgi应用:

from wsgiref.simple_server import make_server

def application(environ, start_response):
    start_response('200 OK', [
        ('Content-Type', 'text/plain'),
    ])
    return ['Hello World!']

httpd = make_server('', 8000, application)
httpd.serve_forever()
2

对于CGI编程来说,最重要的资源之一就是CGI主页。当你了解完这些内容后,接下来应该熟悉一下cgicgitb这两个模块。

不过,别忘了学习WSGI (libref),并使用像flup这样的CGI到WSGI的适配器。

撰写回答