为了账号安全,请及时绑定邮箱和手机立即绑定

如何提供一种从前端编辑 Flask 应用程序文本的方法?

如何提供一种从前端编辑 Flask 应用程序文本的方法?

Cats萌萌 2023-04-18 14:23:58
我正在创建一个烧瓶应用程序,我想提供一种方法来在我登录后编辑我个人网站上的文本。我目前正在使用 MySQL 作为我的数据库。需要明确的是,我希望编辑是从前端完成的,有什么办法可以做到这一点吗?
查看完整描述

1 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

您可以在 Flask 中使用WTForm,在表单提交时将编辑后的数据传递给数据库。

Flask-WTF 为您的 Flask 应用程序提供与 WTForms 的集成。例如:` from flask_wtf import FlaskForm from wtforms import StringField from wtforms.validators import DataRequired

class MyForm(FlaskForm):
    name = StringField('name', validators=[DataRequired()])

`

注意从 0.9.0 版本开始,Flask-WTF 将不会从 wtforms 中导入任何内容,您需要从 wtforms 中导入字段。

此外,还会自动创建一个 CSRF 令牌隐藏字段。你可以在你的模板中呈现这个:`

<form method="POST" action="/">

    {{ form.csrf_token }}

    {{ form.name.label }} {{ form.name(size=20) }}

    <input type="submit" value="Go">

</form>

If your form has multiple hidden fields, you can render them in one block using hidden_tag().


<form method="POST" action="/">

    {{ form.hidden_tag() }}

    {{ form.name.label }} {{ form.name(size=20) }}

    <input type="submit" value="Go">

</form>

Validating Forms Validating the request in your view handlers:


@app.route('/submit', methods=('GET', 'POST'))

def submit():

    form = MyForm()

    if form.validate_on_submit():

        #you can write your db logic here.

        return redirect('/success')

    return render_template('submit.html', form=form)

` 请注意,您不必将 request.form 传递给 Flask-WTF;它会自动加载。便利的 validate_on_submit 将检查它是否是 POST 请求以及它是否有效。


查看完整回答
反对 回复 2023-04-18
  • 1 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信