我在本地运行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文件访问这些信息。
答案 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/。