如何从表单中获取数据到jinja2
How to get data from a form to jinja2
我正在尝试获取通过表单输入的值,然后返回到我的神社模板中。我知道这没有意义,所以我想我是在问我如何去做我想做的事?这是我所拥有的:
Python
@app.route('/test', methods=['GET', 'POST'] )
def test():
posts = db.posts
facultyId = request.form.get("facultyId","");
print "facultyId: ",facultyId
return render_template('form.html',posts=posts,Id=facultyId)
form.html
<form method='post'>
<table width="80%" border="5" align="center" bgcolor="white">
<tbody>
<tr>
<th colspan= "4">
Faculty Identification Number:
<input type="text" id="facultyId" name="facultyId" value=""/>
</th>
</tr>
<tr>
<th colspan= "4">
Number Of Evaluations:
{% if posts.find({"Applicants.appId" : Id},{'Applicants.Evaluators':{'$exists': True }}).count() == 0 %}
{{posts.find({"Applicants.appId" : Id},{'Applicants.Evaluators':{'$exists': True }}).count() }}
{% else %}
{% for post in posts.find({"Applicants.appId" : Id}, { "Applicants.$.Evaluators" : 1 }) %}
{{post["Applicants"][0]["Evaluators"]|length}}
{% endfor %}
{% endif %}
</th>
</tr>
<th colspan= "4"><button type="submit" >Submit</button></th>
</tbody>
</table>
</form>
我希望能够通过表单提交 facultyId 并将其放入我的神社和 运行 我的 mongodb 查找查询中。如果我硬编码其中的值,它会起作用,所以如果我在我的 python 中执行 Id=100 它会起作用,但如果我通过论坛这样做,它不会起作用,并且正在输入 facultyId 值,因为它确实打印出来了。
尽量放在大括号里。像这样:
<form method='post'>
<table width="80%" border="5" align="center" bgcolor="white">
<tbody>
<tr>
<th colspan= "4">
Faculty Identification Number:
<input type="text" id="facultyId" name="facultyId" value=""/>
</th>
</tr>
<tr>
<th colspan= "4">
Number Of Evaluations:
{% if posts.find({"Applicants.appId" : {{Id}}},{'Applicants.Evaluators':{'$exists': True }}).count() == 0 %}
{{posts.find({"Applicants.appId" : {{Id}}},{'Applicants.Evaluators':{'$exists': True }}).count() }}
{% else %}
{% for post in posts.find({"Applicants.appId" : {{Id}}}, { "Applicants.$.Evaluators" : 1 }) %}
{{post["Applicants"][0]["Evaluators"]|length}}
{% endfor %}
{% endif %}
</th>
</tr>
<th colspan= "4"><button type="submit" >Submit</button></th>
</tbody>
</table>
</form>
我认为问题在于您没有将 facultyId
解析为整数。如果您对 100
进行硬编码,它会起作用,因为它是一个整数,但是您从 request.form
中分配的是一个字符串 "100"
.
之后
facultyId = request.form.get("facultyId","")
添加
facultyId = int(facultyId) if facultyId else None
尝试如下设置动作控制器
<form method='post' action='/test'>
我还建议将您的 posts.find 逻辑放入路由函数中,然后将其结果传递给 posts 变量中的表单。
我正在尝试获取通过表单输入的值,然后返回到我的神社模板中。我知道这没有意义,所以我想我是在问我如何去做我想做的事?这是我所拥有的:
Python
@app.route('/test', methods=['GET', 'POST'] )
def test():
posts = db.posts
facultyId = request.form.get("facultyId","");
print "facultyId: ",facultyId
return render_template('form.html',posts=posts,Id=facultyId)
form.html
<form method='post'>
<table width="80%" border="5" align="center" bgcolor="white">
<tbody>
<tr>
<th colspan= "4">
Faculty Identification Number:
<input type="text" id="facultyId" name="facultyId" value=""/>
</th>
</tr>
<tr>
<th colspan= "4">
Number Of Evaluations:
{% if posts.find({"Applicants.appId" : Id},{'Applicants.Evaluators':{'$exists': True }}).count() == 0 %}
{{posts.find({"Applicants.appId" : Id},{'Applicants.Evaluators':{'$exists': True }}).count() }}
{% else %}
{% for post in posts.find({"Applicants.appId" : Id}, { "Applicants.$.Evaluators" : 1 }) %}
{{post["Applicants"][0]["Evaluators"]|length}}
{% endfor %}
{% endif %}
</th>
</tr>
<th colspan= "4"><button type="submit" >Submit</button></th>
</tbody>
</table>
</form>
我希望能够通过表单提交 facultyId 并将其放入我的神社和 运行 我的 mongodb 查找查询中。如果我硬编码其中的值,它会起作用,所以如果我在我的 python 中执行 Id=100 它会起作用,但如果我通过论坛这样做,它不会起作用,并且正在输入 facultyId 值,因为它确实打印出来了。
尽量放在大括号里。像这样:
<form method='post'>
<table width="80%" border="5" align="center" bgcolor="white">
<tbody>
<tr>
<th colspan= "4">
Faculty Identification Number:
<input type="text" id="facultyId" name="facultyId" value=""/>
</th>
</tr>
<tr>
<th colspan= "4">
Number Of Evaluations:
{% if posts.find({"Applicants.appId" : {{Id}}},{'Applicants.Evaluators':{'$exists': True }}).count() == 0 %}
{{posts.find({"Applicants.appId" : {{Id}}},{'Applicants.Evaluators':{'$exists': True }}).count() }}
{% else %}
{% for post in posts.find({"Applicants.appId" : {{Id}}}, { "Applicants.$.Evaluators" : 1 }) %}
{{post["Applicants"][0]["Evaluators"]|length}}
{% endfor %}
{% endif %}
</th>
</tr>
<th colspan= "4"><button type="submit" >Submit</button></th>
</tbody>
</table>
</form>
我认为问题在于您没有将 facultyId
解析为整数。如果您对 100
进行硬编码,它会起作用,因为它是一个整数,但是您从 request.form
中分配的是一个字符串 "100"
.
之后
facultyId = request.form.get("facultyId","")
添加
facultyId = int(facultyId) if facultyId else None
尝试如下设置动作控制器
<form method='post' action='/test'>
我还建议将您的 posts.find 逻辑放入路由函数中,然后将其结果传递给 posts 变量中的表单。