【问题标题】:How do i output a dynamically generated web page to a .html page instead of .py cgi page?如何将动态生成的网页输出到 .html 页面而不是 .py cgi 页面?
【发布时间】:2010-11-06 19:31:22
【问题描述】:

所以我刚开始在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 一起去,主要是因为大小其用户群和文档数量。一旦我掌握了基础知识,我可能会切换到更轻/更可定制的框架

【问题讨论】:

  • 你用的是什么框架?这是原始的 .CGI 脚本吗?如果是这样,你为什么不使用 mod_wsgi?
  • 无框架,python 导入了 mysqldb 和 cgi 模块。我上周日才开始安装 xampp 和 python。一旦掌握了基础知识,我将转到 mod_wsgi。但我已经想知道这是否可以提供一个简单的解决方案
  • 任何框架都将比任何 CGI 脚本更简单。
  • 花一天时间阅读 Django 和 Grok(两者都可能对您的口味来说太大)或 Turbogears 甚至是简约的 Repoze.BFG 的教程。这将为您节省大量时间。

标签: python html webpage


【解决方案1】:

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

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

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

最后,我建议,如果您确实对 URL 的外观感到困惑,请删除任何看起来像文件扩展名的东西的迹象(这样,…/foo 被请求而不是…/foo.anything) .

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

【讨论】:

    猜你喜欢
    • 2020-02-16
    • 1970-01-01
    • 2012-07-08
    • 2013-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    相关资源
    最近更新 更多