Python 3.x Flask-仅传递选定字段
我有一个flask网页,要求用户选择几个字段,并根据所选字段返回输出 下面的代码只适用于3个字段。如果用户选择所有3个字段,则不会出现问题。但是,如果未选择任何字段,它将返回一个错误,说明列“none”不存在Python 3.x Flask-仅传递选定字段,python-3.x,flask,Python 3.x,Flask,我有一个flask网页,要求用户选择几个字段,并根据所选字段返回输出 下面的代码只适用于3个字段。如果用户选择所有3个字段,则不会出现问题。但是,如果未选择任何字段,它将返回一个错误,说明列“none”不存在 def template(): form = TestForm() if form.validate_on_submit(): student_id = form.student_id.data class_id = form.class_i
def template():
form = TestForm()
if form.validate_on_submit():
student_id = form.student_id.data
class_id = form.class_id.data
roll_id = form.roll_id.data
print(student_id)
print(class_id)
print(roll_id)
是否有人可以帮助我修改此设置,以便只传递选定的字段,而忽略未选定的字段。谢谢
编辑(HTML代码):
显示HTML和验证代码。听起来您的选择字段值默认为“无”。您可能希望将其默认为空字符串或更改validation@Cfreak在我的初始帖子中包含了HTML代码。告诉我们你如何调用<代码>函数< /> >,也考虑重命名它。其次,如果
field\u名称
直接来自HTML的值,则此代码容易受到SQL注入攻击。您希望指定要选择的列。通常,对于复选框,“值”属性应为true或false值,以决定是否选中它。您选择的列应该是静态的,您可以在SQL中使用WHERE
语句来控制返回的行。@Cfreak,此函数将访问一个临时表,该临时表最多有10条记录,并且只能从该列表中获取3个样本。当然,我们会适当地重命名该函数。然而,我被困在如何通过这些返回“None”的非选择字段上
<form action=""
enctype="multipart/form-data"
method="POST">
{{form.hidden_tag()}}
<table>
<div class="checkbox">
<label>
<input type="checkbox" name="student_id" value="student_id"> student_id
</label>
</div>
<div class="checkbox">
<label>
<input type="checkbox" name="class_id" value="class_id"> class_id
</label>
</div>
<div class="checkbox">
<label>
<input type="checkbox" name="roll_id" value="roll_id"> roll_id
</label>
</div>
<tr class="submit">
<td></td>
<td><button type="submit">Get the Report!</button>
</td>
</tr>
</table>
</form>
def function(*field_names):
cursor = conn.cursor()
cursor.execute('select {} from enrolments'.format(', '.join(str(field) for field in field_names)))
print(field_names)
output_file = dwh_cursor.fetchall()