【发布时间】:2020-09-30 10:13:08
【问题描述】:
我想尽可能根据 REST 设置我的 URL/端点,同时仍然使用 Flask-WTForms。
我希望我的表单在GET /posts/new 呈现,并提交到POST /post。
使用 Flask-WTForms,我只能弄清楚如何让它 GET/POST 到同一个 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)
- 这条路线只显示表单
- 表单向 /post 提交 POST 请求
<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()对象并没有真正起作用..
有什么建议吗?
【问题讨论】:
-
url_for('shipment.C_shipment')- 对吗?
标签: python flask flask-wtforms wtforms