【问题标题】:How to Take Checkboxes in Python如何在 Python 中选择复选框
【发布时间】:2012-10-25 21:31:49
【问题描述】:

我正在尝试在我的 HTML 中使用复选框,将这些复选框返回到我的 python 后端,然后如果单击该框,则增加三个计数器。

现在我的 HTML 如下并且工作正常:

<form method="post">
    <input type="checkbox inline" name="adjective" value="entertaining">Entertaining
    <input type="checkbox inline" name="adjective" value="informative">Informative
    <input type="checkbox inline" name="adjective" value="exceptional">Exceptional
</form>

然后在我的 python 后端我有以下内容:

def post(self):
    adjective = self.request.get('adjective ')

    if adjective :
        #somehow tell if the entertaining box was checked
        #increment entertaining counter
        #do the same for the others

【问题讨论】:

  • 我想也许可以在 html "adjective[]" 中命名...也许...
  • 你知道你可以print adjective 看看里面有什么,对吧?它最终会与您的 HTML 混在一起,但您可以查看源代码来看看...
  • @kindall 这对调试很有用,但我需要以编程方式进行,以便每次在后端都能正常工作
  • 是的,但是通过调试,您可以轻松地了解如何以编程方式执行此操作,通过查看您获得的内容,这将决定如何访问它。
  • 您使用的是webapp 还是webapp2?它们用于从请求中获取多个值的 API 略有不同。

标签: python html google-app-engine checkbox webapp2


【解决方案1】:

改个name="" 和值一样是不是更方便,你就问吧

如果娱乐:

如果信息丰富:

我不是 python 程序员,只是告诉你不要

【讨论】:

  • 是的,我同意这更容易一些,但我认为这不是正确的方法。不过我可能错了。
  • 是否有类似 switch 语句的地方 like if adjective == entertainmentg: //打印代码或 switch case 1 if adjective == entertainment: //执行 case 2 if adjective == informative: //执行
  • Python 没有 switch 语句。通常替代方法是使用字典。但是恐怕我实际上并不理解您建议的代码(将其放在答案中可能会有所帮助,您可以在其中正确格式化)。
  • srry 我忘了使用代码标签,但我的意思是通过等号检查“形容词”的值,或者我认为默认值应该是表单中选择的任何一个(娱乐性、特殊性或信息性)不是 null 或 0 或没有值,但我不知道 python 是如何工作的,但也许有类似的代码你知道我不知道 python 中的术语,所以如果你可以比较“形容词”的值对 sting 集“信息性”或您选择的任何一个
【解决方案2】:

如果您的表单有多个具有相同name 属性的复选框,则在提交表单时请求将具有该名称的多个值。

您当前的代码使用Request.get 获取一个值,但这只会在有多个值时检索第一个值。相反,您可以使用 Request.get_all(name)(在 webapp 中)或 Request.get(name, allow_multiple=True)(在 webapp2 中)获取所有值。这将返回一个(可能为空)列表,其中包含该名称的所有值。

您可以在代码中使用以下方法:

def post(self):
    adjectives = self.request.get('adjective', allow_multiple=True)
    for a in adjectives:
        # increment count
        self.adjective_count[a] += 1 # or whatever

        # do more stuff with adjective a, if you want

    # do other stuff with the request

【讨论】:

  • 谢谢!有道理,但我无法在网上轻松找到这一切
  • 我认为this 是文档的相关部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-16
相关资源
最近更新 更多