我有一个Flask网页,要求用户选择一些字段并根据所选字段返回输出。
下面的代码可以在3个字段中正常工作。如果用户选择所有3个字段,则没有问题。但是,如果未选择任何字段,则会返回错误消息,指出“无”列不存在。
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代码)
<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()