2

我是 Python 新手(不知何故,我 2 天前开始研究 Python)。

我尝试用 CGI 编写一个简单的交互式网页,并使用 HTML 表单来获取用户输入。但是,众所周知,如果我刷新网页,表单数据会再次重新提交。我只是不知道如何防止这种情况发生。

同样的问题,但是在php/javascript中,已经讨论过并且可以找到解决方案,但是我想找到python案例的答案。

我希望这里有人可以解决我的问题。由于我对这门语言不是很熟悉,所以我希望不仅给我一个描述性的解决方案,还可以给我一些必要的代码。

非常感谢

4

3 回答 3

3

您的问题不是特定于 Python 的,而是关于一般 Web 应用程序设计模式的。

  1. GETs 用于不更改 Web 应用程序状态的请求(查看、查询等)。在响应中呈现页面。
  2. 用于POST任何修改状态的请求(提交、编辑、删除)。
  3. 永远不要在响应中呈现任何内容,提供303 See Other重定向到POST可以看到结果的页面。例如,如果用户在页面http://example.com/blog/123上添加了评论,则POST处理程序可以是http://example.com/submitcomment,但它应该只返回到http://的重定向example.com/blog/123#comment5

这就是@mikep 所说的Post-Redirect-Get。

关于相关说明:帮自己一个忙,跳过 CGI。有许多用于 Python 的漂亮而干净的 Web 框架。如果您正在构建一个大型应用程序,请尝试 Flask 或 Bottle(较小的框架)或直接使用 Django。在 Stack Overflow 上搜索不同框架的优缺点。

跳过CGI。很难构建一个好的和可维护的 CGI 应用程序,有太多的事情需要处理,如果在框架中已经考虑过的事情。

一段时间以来,我一直在浪费时间支持 CGI 应用程序,而切换到框架是一种解脱。

于 2012-05-19T10:55:42.617 回答
2

您可能想查看这些讲座:http ://www.udacity.com/overview/Course/cs253/CourseRev/apr2012

第 2 周将解决您的疑问。

于 2012-05-19T05:25:52.013 回答
2

看看POST-REDIRECT-GET Web 编程模式。

于 2012-05-19T05:51:24.297 回答