如何将动态生成的网页输出到.html页面而不是.py cgi页面?

时间:2009-06-29 20:18:19

标签: python html webpage

所以我刚刚开始在WAMP上学习python,我已经使用cgi获得了html表单的结果,并成功使用mysqldb执行了数据库搜索。我可以通过在python cgi代码中使用print语句将结果返回到以.py结尾的页面,但我想创建一个.html的网页,并将其返回给用户,和/或将它们保存在同一个webaddress上当数据库搜索结果返回时。

感谢 保罗

编辑:为了澄清我的本地机器,我在地址栏中看到/localhost/search.html我提交了html表单,并在/localhost/cgi-bin/searchresults.py上收到了一个结果页面。我想在/localhost/results.html或/localhost/search.html上看到结果。如果这是在公共服务器即时消息它将返回... / cgi-bin / searchresults.py,我最后一次看到/ cgi-bin /目录在90年代的网址中。我瞥了一下addhandler,就像大卫建议的那样,我不确定那是不是我想要的。

编辑:感谢所有人的输入,没有使用框架,mod_rewrite似乎是要走的路,但看了之后,我决定自己省去麻烦,用django和mod_wsgi一起去,主要是因为它的大小其用户群和文档数量。一旦有了基础知识,我可能会转向更轻/更可定制的框架

1 个答案:

答案 0 :(得分:3)

首先,我建议您记住,网址是网址,文件扩展名无关紧要,您应该留下它。

如果这还不够,那么请记住URL是URL,文件扩展名无关紧要 - 并配置Apache使用不同的规则来确定这是一个CGI程序而不是一个静态文件作为服务提供是。您可以使用AddHandler为扩展名为.html的硬盘上的文件添加处理程序。

或者,您可以使用mod_rewrite告诉Apache ...... / foo.html表示... / foo.py

最后,我建议如果你在使用什么网址看看,你删除任何看起来像文件扩展名的符号(这样就要求... / foo而不是...... / foo.anything)

至于保持用户与请求的结果相同的地址...这只是让程序输出没有结果的基本页面的问题,如果它没有得到指示搜索词有的查询字符串参数已经过去了。