我希望尽可能紧密地根据REST设置我的URL/端点,同时仍然使用表单
我希望我的表格在GET /posts/new
提交,并提交给POST /post
使用Flask WTForms,我只能解决如何让它获取/发布到相同的URL
我当前的代码如下所示:
@post_bp.route('/posts/new', methods=['GET', 'POST'])
def show_post_form():
create_post_form = CreatePostForm()
if create_post_form.validate_on_submit():
return 'success'
return render_template('create_post_form.html', form=create_post_form)
然而,我想让它看起来更像这样,但我似乎无法解决:
@post_bp.route('/posts/new', methods=['GET'])
def show_post_form():
create_post_form = CreatePostForm()
return render_template('create_post_form.html', form=create_post_form)
<form action="{{url_for('shipment.C_shipment')}}" method="POST" novalidate>
POST /post
路由处理提交的表单,例如,如果有错误,它将重定向回GET /posts/new
:@post_bp.route('/post', methods=['POST'])
def create_post():
create_post_form = CreatePostForm()
if create_post_form.validate_on_submit():
return "success!"
if len(create_post_form.errors) != 0:
for error in create_shipment_form.errors:
for msg in create_shipment_form.errors[error]:
flash(msg)
return redirect(url_for('shipment.show_create_shipment_form'))
CreatePostForm()
对象并没有真正起作用李>有什么建议吗
创建新的
CreatePostForm
是正确的,因为它会为您解析提交的表单数据。这允许您在表单对象上调用validate_on_submit()
我认为您在HTML代码段中没有为表单操作生成正确的URL。
url_for()
的参数应该是所需的端点(请参见docs),它应该是<post_bp>.create_post
。这将类似于您的电话如果这不能解决问题,请提供在尝试将数据发送到
/post
时收到的前端和后端错误消息相关问题 更多 >
编程相关推荐