【问题标题】:Python - How do i know when a form button was pressed? (logout)Python - 我如何知道何时按下表单按钮? (登出)
【发布时间】:2011-04-26 17:56:47
【问题描述】:

我正在尝试在 python CGI 中为我的网站制作一个注销按钮。我想知道我怎么知道按钮何时被按下?

我的注销表格如下:

<form id="logout" method="POST" action="">
   <input type="submit" name="logout" value="Logout">
</form>

从这里,我知道我需要将表单存储在 FieldStorage 中,所以我做了以下操作:

form = cgi.FieldStorage()

我试过做一个 if 语句,例如:

if form.has_key('logout'):
    doLogoutFunction()

但它不起作用。请帮忙

【问题讨论】:

  • 首先,定义“不起作用”。我们猜不出你看到了什么。由于您没有提供所有代码,我们无法猜测您还犯了哪些其他错误。请创建您可以创建的最小 CGI 应用程序,该应用程序存在此问题,并发布所有代码以及“不起作用”对您意味着什么的描述。

标签: python html cgi


【解决方案1】:

您无需通过POST 处理注销,还需要在操作字段中指出处理GETPOST 的内容

这是一个example,它显示了如何通过 GET 任何表单提交来处理它。您可以简单地允许单击指向 url /logout 中特定部分的注销链接,并处理从应用程序注销的位置的 GET。

如果你真的想通过表单来做,你可以为表单设置一个隐藏字段,然后验证值。

<html><body>
<form method="get" action="logoff.py">
Name: <input type="hidden" name="hidden">
<input type="submit" value="Logoff">
</form>
</body></html>

而对应的CGI Python脚本为:

import cgi
form = cgi.FieldStorage() # instantiate only once!
name = form.getfirst('name')
if name == 'hidden':
   # do your action

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-24
    • 1970-01-01
    • 1970-01-01
    • 2021-07-25
    相关资源
    最近更新 更多