首页 > 解决方案 > 如何在 Flask python 中使用变量值访问类属性?

问题描述

我有一个表单类

class StudentForm(FlaskForm):
      bool_1= BooleanField('Set bool_1')
      bool_2= BooleanField('Set bool_2')

现在在视图中,我想获得像这样的字段的值

@app.route('/student', methods=['POST'])
def student():
    fields = ['bool_1', 'bool_2']
    form = StudentForm()
    if request.method == 'POST':
       for field in fields:
         if form.field.data is True:
           print('OK')
    return render_template('abc.html', form=form)

但它显示'StudentForm' object has no attribute 'field',我知道field是一个string。有什么办法可以做到这一点。

标签: pythonflask

解决方案


这是一个简单的解决方案:

@app.route('/student', methods=['POST'])
def student():
    form = StudentForm()
    for k, v in form.data.items():
        if v:
            print('OK')
    return render_template('abc.html', form=form)

并且无需检查,request.method因为您仅限methodsPOSTroute装饰器中。


推荐阅读