Python:如何在网页上显示结果?

11 投票
8 回答
33455 浏览
提问于 2025-04-15 14:53

这可能对那些知道答案的人来说是个傻问题,但我还是个新手,所以我就问了:

我有一个Python脚本,我在命令行中运行它,并传入一些参数,然后它会给我打印出一些结果。假设这些结果是一些HTML代码。

我之前从来没有做过与网页相关的Python编程,所以搞不清楚该怎么做……我需要一个网页(好吧,我知道怎么把文件上传到服务器,Apache也在运行,服务器上也安装了Python……),这个网页上要有一个输入框,可以接受那个参数,还有一个提交按钮。用户提交正确的参数后,我希望能在网页上“打印”出结果,或者显示在命令行中打印的任何输出。

我读过《Dive Into Python》关于“HTML处理”和“HTTP网络服务”的章节,但它们没有描述我想要的内容。

如果答案比较长,我会非常感激你能给我一些更相关的阅读链接,或者告诉我一些关键字让我去谷歌搜索。

8 个回答

2

你在问哪个网络服务器?如果这个服务器是由网络托管公司或其他人提供的,而你又没有控制权,那你需要弄清楚他们是怎么支持用Python来写网页应用的。仅仅知道他们有Python是不够的。

正如其他人提到的,至少会支持使用Python的CGI脚本。不过,CGI对于运行像Django这样的大型Python网页框架来说并不太实用。

不过,服务器也可能支持FASTCGI。如果是这样的话,就可以使用更大的Python网页框架,因为FASTCGI使用的是持久进程,而CGI每次请求都会创建一个新进程,这样一来,大型Python框架的开销就让CGI变得不太实用了。

如果Apache服务器是由别人控制的,使用像wsgiref这样的独立Python网页服务器,并通过Apache进行代理也不太可能,因为你无法设置Apache来做到这一点。

所以,弄清楚他们是如何支持Python用于网页应用的,看看你只是Apache的普通用户,还是你有一定的权限去修改它的全局配置文件并重启它。这将决定你能做什么和能用什么。

4

对于这么简单的任务,你可能只需要用到CGI就够了。幸运的是,Python里面有一个内置的cgi模块,可以满足你的需求。

或者你也可以看看一些简单的网页框架,比如web.py

4

听起来你只需要在Apache服务器上启用CGI,这样就能把你的输出直接发送到网页上了。

Python确实有一个CGI库,你可以去看看。

这里有一篇Guido写的文章(虽然有点旧)

还有一个互动教程,看起来很不错。

附言:

也许你还想看看谷歌的这个谷歌应用引擎(不过可能不太符合你的需求)

撰写回答