如何正确地将POST请求从表单(wtforms)重定向/提交到REST api(烧瓶不动)?

我找不到将数据从提交的表单重定向到REST api的正确方法。

当前-像下面的示例一样-视图/路由中处理了“ POST”方法(请参见路由“ add_person()”)。

我的样本数据模型(基于SQLAlchemy):

class Person(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))

通过html呈现的表单(基于wtforms):

class PersonForm(FlaskForm):
    name = TextField("Person name", validators=[DataRequired()])

查看/路线声明:

@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>

现在,我想将与数据库/ CRUD相关的操作委派给REST api。

为“人员”数据模型生成的API端点是:“ / api / person ”。

如果我从以下位置切换表单的“操作”:

"/add_person"

至:

"/api/person", 

然后将我重定向到API网址,因此我认为这不是正确的方法。

我认为我仍然应该使用视图/路由处理并在那里进行POST api调用,而不是持久保存“ Person”对象。这是最干净的解决方案吗?我该如何处理?

我自己回答。我最终停留在Flask中处理的表单的“ / add_person” POST操作中,然后使用Python“ requests”库向API端点发出请求。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

基于烧瓶的REST API:棉花糖vs烧瓶宁静

如何在烧瓶上固定REST Api

如何使用烧瓶使用请求的表单数据在python中调用rest API

如何正确地构建REST的API端点

Outlook.com REST API-在不动态登录的情况下获取令牌

在烧瓶中重定向时发出POST请求

如何正确地将传统Firebase JWT令牌作为“身份验证”提供给REST API?

如何在使用 jQuery 的 HTML 表单中使用两个按钮时将数据提交到烧瓶

如何在重定向的情况下使用烧瓶将参数传递给 HTML 表单

无法在烧瓶中为REST API返回json分页

烧瓶,wtforms将空表单发回

如何让这个 API 返回一个值烧瓶 python

如何使用API从每个国家的烧瓶中分别获取数据

如何将烧瓶中的HTTP重定向到https

烧瓶重定向功能未重定向到正确的页面

烧瓶:提交表单后重定向到同一页面

防止将联系表单提交到.net Core Web API

如何添加一个表单的多个副本并使用不同的数据提交它们?烧瓶,WTForms

如何正确地将获取的 API 响应注入到表中

如何正确地将数据从 Web API 绑定到 WPF 中的 ListBox?

如何正确地将许多依赖关系(外部API)传递给Scala中的类?

我如何使用烧瓶进行重定向?

烧瓶404的POST请求

如何使用 API 将 os.fork 与 sqlalchemy 核心和烧瓶一起使用?

如何正确地将单击的按钮属性值传递给表单提交事件?

烧瓶重定向错误地传递函数引用

如何正确地从Wikipedia API获取CORS?

烧瓶重定向多条路线

烧瓶重定向多条路线