如何正确地将POST请求从表单(wtforms)重定向/提交到RESTAPI(flask)上?
我找不到合适的方法将数据从提交的表单重定向到RESTAPI 当前-如下面的示例所示,在视图/路由中处理“POST”方法(请参阅路由“add_person()”) 我的示例数据模型(基于SQLAlchemy): 通过html呈现的表单(基于wtforms): 查看/路线声明:如何正确地将POST请求从表单(wtforms)重定向/提交到RESTAPI(flask)上?,flask,flask-wtforms,flask-restless,Flask,Flask Wtforms,Flask Restless,我找不到合适的方法将数据从提交的表单重定向到RESTAPI 当前-如下面的示例所示,在视图/路由中处理“POST”方法(请参阅路由“add_person()”) 我的示例数据模型(基于SQLAlchemy): 通过html呈现的表单(基于wtforms): 查看/路线声明: @views.route('add_person', methods=["GET", "POST"]) def add_person(): form = PersonForm() if request.met
@views.route('add_person', methods=["GET", "POST"])
def add_person():
form = PersonForm()
if request.method == 'POST' and form.validate_on_submit():
person = Person()
person.name = form.name.data
db.session.add(person)
db.session.commit()
return redirect(url_for('view.add_person'))
return render_template('person_add.html', form=form)
HTML模板:
<form method="POST" action="/add_person">
{{ form.csrf_token }}
{{ form.name.label }} {{ form.name(size=20) }}
<input type="submit" value="Submit">
</form>
致:
然后我被重定向到API url,所以我想这不是一个正确的方法
我认为我仍然应该使用视图/路由处理,并在那里进行POST api调用,而不是持久化“Person”对象。这是最干净的解决方案吗?我怎样才能做到这一点 我自己来回答。
最后,我继续使用Flask中处理的表单的“/add_person”POST操作,然后使用Python“requests”库向API端点发出请求
@views.route('add_person', methods=["GET", "POST"])
def add_person():
form = PersonForm()
if request.method == 'POST' and form.validate_on_submit():
person = Person()
person.name = form.name.data
db.session.add(person)
db.session.commit()
return redirect(url_for('view.add_person'))
return render_template('person_add.html', form=form)
<form method="POST" action="/add_person">
{{ form.csrf_token }}
{{ form.name.label }} {{ form.name(size=20) }}
<input type="submit" value="Submit">
</form>
"/add_person"
"/api/person",