Flask - 布尔形式

时间:2016-03-14 20:08:50

标签: forms flask boolean

我在本地运行python文件。当我访问127.0.01:5000 /字符串时,我会进入特定的html页面。到目前为止,使用javascript,我设法在该页面上放置一些复选框(布尔形式),但是如何将它们中的每一个(True或False)的值分配给python文件中的变量?

我无法以任何方式使用用户的回复。

我使用flask-ext-wtforms,render_template等

这是我到目前为止在html文件中的内容。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<script>
var creature=0
var artifact=0
function suggest(){

if ($('#Creature').is(':checked')){creature=1;}  

if ($('#Artifact').is(':checked')){artifact=1;} 
}
</script>

<input type="checkbox" id = "Creature">Creature<br>
<input type="checkbox" id = "Artifact">Artifact<br>
<input type="checkbox" id = "Enchantment"> Enchantment<br>
<input type="checkbox" id = "Sorcery"> Sorcery<br>

<button type="button" onclick = "suggest(); alert('creature ' + creature + ' artifact ' + artifact)">Submit</button>

它告诉我用户是否点击了前两个框中的一个,但就是这样。我不知道如何让python文件访问这些信息。

1 个答案:

答案 0 :(得分:0)

查看实际Python文件中的内容非常有用,但我会试一试。此外,我还要说明,对于这些问题,文档应该是你最好的朋友,也是第一次参加,但这是一个开始。

从你发布的HTML中,看起来你并没有真正使用Flask-WTF Form实例。您可能希望首先使用Form创建BooleanField,如下所示:

from flask.ext.wtf import Form
from wtforms import BooleanField

class MyForm(Form):
    creature = BooleanField()
    # etc
    submit = SubmitField()

然后在您的模板中呈现表单&amp;像这样的字段:

<form method="POST" action="/string">
  {{ form.creature.label }}
  {{ form.creature() }}
  {# ... etc ... #}
  {{ form.submit() }}
</form>

然后最后在您的视图中,您必须(A)指定视图接受POST请求,(B)创建表单,以及(C)确保将表单传递给模板进行渲染。如果你做了所有这些事情,那么当你或其他人,机器人或任何点击提交时,浏览器会将数据从表单发布到视图,你将能够在视图中访问它比方说,form.creature.data。例如:

@route('/string', methods=['GET', 'POST']) # part A
def get_critters():
    form = MyForm() # part B
    if form.validate_on_submit(): 
        # do something with form.creature, or form.whatever
    return render_template("string.html", form=form) # part C

所有这些都非常适用于每个项目的文档的多个部分。参见:

https://flask-wtf.readthedocs.org/en/latest/quickstart.html https://wtforms.readthedocs.org/en/latest/fields.html#wtforms.fields.BooleanField

以及http://flask.pocoo.org/docs/0.10/的几乎所有内容,尤其是http://flask.pocoo.org/docs/0.10/patterns/wtforms/http://flask.pocoo.org/docs/0.10/tutorial/