首先我是用的WTForms生成的表单,我也用input标签写过,感觉不整洁,就弃用了,这里我以学院school、系department、团队team,这三级关系做介绍。(和省,市,区一样)
下面的Form类的定义(数据库定义就不给出了,这里使用SQLalchemy查询语言):
class RegisterForm(FlaskForm):
#注意这样定义school就是表单id,下面也一样
school = SelectField('学院', coerce=int, default='xxx')
department = SelectField('系', coerce=int, default='xxx')
team = SelectField('团队', coerce=int, default='xxx')
#初始化下拉表单值,直接给出了学院的所有值
def __init__(self, *args, **kwargs):
super(RegisterForm, self).__init__(*args, **kwargs)
#第一个值给空是防止第一个选择就是想要的,下拉表单感受不到变化
self.school.choices=[(1,'')]
for school in School.query.order_by(School.id).all():
self.school.choices.append((school.id,school.name))
self.depart