1

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

谢谢保罗

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

编辑:感谢大家的输入,是的,不使用框架,mod_rewrite 似乎是要走的路,但是看了之后,我决定省去麻烦,用 mod_wsgi 和 django 一起去,主要是因为它的用户群的大小和文档数量。一旦掌握了基础知识,我可能会切换到更轻/更可定制的框架

4

1 回答 1

3

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

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

或者,您可以使用mod_rewrite告诉 Apache .../foo.html 意味着 .../foo.py

最后,我建议,如果您确实对 URL 的外观感到困惑,那么您删除任何看起来像文件扩展名的东西的标志(以便请求 .../foo 而不是 .../foo.anything)。

至于将用户保持在与请求相同的结果地址上……这只是让程序在没有获得指示已传递搜索词的查询字符串参数时输出没有结果的基本页面的问题。

于 2009-06-29T20:30:33.443 回答