2009-06-29 35 views
1

因此刚刚开始在WAMP上学习python,我得到了使用cgi的html表单的结果,并成功地用mysqldb执行了数据库搜索。我可以通过在python cgi代码中使用print语句将结果返回到以.py结尾的页面,但是我想创建一个.html网页并将其返回给用户,并/或将它们保留在同一个Web地址中当数据库搜索结果返回时。如何将动态生成的网页输出到.html页面而不是.py cgi页面?

感谢 保罗

编辑:澄清我的本地机器上,我看到在地址栏我提交HTML表单/localhost/search.html,和/本地主机/ cgi-bin目录收到一个结果页面/searchresults.py。我想在/localhost/results.html或/localhost/search.html上看到结果。如果这是在一个公共服务器上,那么假定它会返回.../cgi-bin/searchresults.py,上一次我看到/ cgi-bin /目录是在90年代的url中。我瞥了一眼addhandler,正如大卫所建议的那样,我不确定这是否是我想要的。

编辑:感谢你们所有人的意见,没有使用框架,mod_rewrite似乎是要走的路,但看了看,我决定救自己麻烦,并用mod_wsgi与django一起去,主要是因为用户数量和文档数量。我可能会切换到更轻/更可定制的框架,一旦我得到的基本知识

+0

你在使用什么框架?这是原始的.CGI脚本?如果是这样,为什么你不使用mod_wsgi? – 2009-06-29 20:54:19

回答

3

首先,我建议你记住URL是URL和文件扩展名无关紧要,你应该保留它。

如果这还不够,请记住URL是URL,并且文件扩展名不重要—并配置Apache以使用不同的规则来确定是CGI程序而不是要提供的静态文件原样。您可以使用AddHandler为扩展名为.html的硬盘上的文件添加处理程序。

或者,你可以使用mod_rewrite告诉Apache是​​… /foo.html意味着… /foo.py

最后,我建议,如果你周围的淤泥用什么网址的样子,那你删除了任何看起来像文件扩展名的东西(以便请求…/foo,而不是… /foo.anything)。至于保持用户在结果的地址与请求的地址相同,如果程序没有得到指示搜索项已经通过的查询字符串参数,那么这只是让程序输出没有结果的基本页面而已。