Flask RUTIMERROR创建视图时超出最大递归深度
我有两个表单出现在一个页面上(Flask RUTIMERROR创建视图时超出最大递归深度,flask,wtforms,flask-wtforms,Flask,Wtforms,Flask Wtforms,我有两个表单出现在一个页面上(dashboard.html) 我尝试创建3个视图来处理所有情况: 当我最初进入页面时显示dashboard.html([GET]) 当用户发送区域表单时(因此他根据验证获得验证或错误消息)([POST]) 当用户发送消息表单时(因此他根据验证获得验证或错误消息)([POST]) 为此,我有以下代码: @app.route('/dashboard.html') def dashboard(): return render_template('dashbo
dashboard.html
)
我尝试创建3个视图来处理所有情况:
- 当我最初进入页面时显示
([GET])dashboard.html
- 当用户发送
表单时(因此他根据验证获得验证或错误消息)([POST])区域
- 当用户发送
表单时(因此他根据验证获得验证或错误消息)([POST])消息
@app.route('/dashboard.html')
def dashboard():
return render_template('dashboard.html',form= Area(),M_form = Message())
@app.route('/Area',methods=['POST'])
def Area():
return render_template('dashboard.html', form= Area(), M_form=Message())
@app.route('/Message',methods=['POST'])
def Area():
return render_template('dashboard.html', form= Area(), M_form=Message())
但是当我尝试加载这3个视图中的任何一个时,我得到了一个运行时错误:超过了最大递归深度错误,并且回溯是错误的
return self.view_functions[rule.endpoint](**req.view_args)
...., line 24, in dashboard
return render_template('dashboard.html', form= Area(), M_form = Message())
...., line 31, in Area
return render_template('dashboard.html', form= Area(), N_form = Message())
...., line 31, in Area
return render_template('dashboard.html', form= Area(), N_form = Message())
一次又一次地重复相同的错误,直到达到其时钟极限
当我只使用dashboard视图时(从代码中删除/Area
和/Message
两个视图之后),它工作得很好。我得到了我的dashboard.html
我一直在四处寻找,在运行时错误:最大递归
和表单或WTforms之间找不到任何联系。它似乎总是和一个没有正确闭合的循环有关,但这里我没有循环。我看不出它是从哪里来的。您对区域
表单和视图函数有相同的名称(/Area
和/Message
)。得到递归深度错误是因为在视图函数名Area
中,您再次调用Area()
来生成表单,但是视图函数在递归中被无限地回调
@app.route('/Area',methods=['POST'])
def Area():
# Area() is called below and it refers to this view function itself
# that was just declared above.
return render_template('dashboard.html', form= Area(), M_form=Message())
将视图函数的名称更改为不同且唯一的名称
@app.route('/Area',methods=['POST'])
def Area():
# Area() is called below and it refers to this view function itself
# that was just declared above.
return render_template('dashboard.html', form= Area(), M_form=Message())