Python编程:Flask表单扩展Flask-WTF

简介: Python编程:Flask表单扩展Flask-WTF

表单扩展 Flask-WTF

文档: https://flask-wtf.readthedocs.io/en/stable/

安装

pip install Flask-WTF

可以进行csrf验证


代码示例

1、定义模型类 视图使用

from flask import (
    Flask,
    render_template,
    session,
    url_for,
    redirect
)
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField, PasswordField
from wtforms.validators import DataRequired, EqualTo
app = Flask(__name__)
app.secret_key = "1231safdasdf"
class RegisterForm(FlaskForm):
    #                         标签           验证器
    user_name = StringField(label="用户名", validators=[DataRequired("用户名不能为空")])
    password = PasswordField(label="密码", validators=[DataRequired("密码不能为空")])
    re_password = PasswordField(label="密码", validators=[DataRequired("密码不能为空"),
                                                        EqualTo("password", "两次密码不一致")])
    submit = SubmitField(label="提交")
@app.route("/register", methods=["GET", "POST"])
def register():
    # 如果是POST提交,前端数据会放到form对象中
    form = RegisterForm()
    # 验证数据,验证合格后再进行操作
    if form.validate_on_submit():
        username = form.user_name.data
        pwd = form.password.data
        re_pwd = form.re_password.data
        session["user_name"] = username
        return redirect(url_for("index"))
    return render_template("register.html", form=form)
@app.route("/")
def index():
    username = session.get("user_name")
    return "注册成功:username: {}".format(username)
if __name__ == '__main__':
    app.run()

2、模板使用


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

   {{ form.csrf_token }}


   {{ form.user_name.label }}

   <p>{{ form.user_name }}</p>

   {% for msg in form.user_name.errors %}

   <p>{{ msg }}</p>

   {% endfor %}


   {{ form.password.label }}

   <p>{{ form.password }}</p>

   {% for msg in form.password.errors %}

   <p>{{ msg }}</p>

   {% endfor %}


   {{ form.re_password.label }}

   <p>{{ form.re_password }}</p>

   {% for msg in form.re_password.errors %}

   <p>{{ msg }}</p>

   {% endfor %}


   {{ form.submit }}

</form>


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

渲染效果

image.png

相关文章
|
存储 安全 数据库
Flask-Login 扩展中,如何安全地存储用户密码?
【10月更文挑战第4天】Flask-Login 扩展中,如何安全地存储用户密码?
|
Python
Python编程案例:同一工作簿不同表单特定数据添加到工作簿的另一表单里
Python编程案例:同一工作簿不同表单特定数据添加到工作簿的另一表单里
213 1
|
存储 安全 数据库
Flask-Login 扩展中,如何安全地存储用户密码
Flask-Login 扩展中,如何安全地存储用户密码
|
SQL 缓存 数据库
神秘编程领域惊现宝藏!Flask 扩展生态究竟隐藏着怎样的神奇力量?快来揭开提升开发效率的秘密!
【8月更文挑战第31天】在 Flask 的世界里,其简洁而强大的核心框架搭配丰富多彩的扩展生态,为开发者带来了无尽可能性。从数据库集成到用户认证,从表单验证到缓存管理,Flask 提供了众多高质量插件,如 Flask-SQLAlchemy、Flask-WTF 和 Flask-Login,大幅提升了开发效率和代码质量。这些扩展如同宝库中的珍宝,等待着我们去探索和利用,但需谨慎选择以避免不必要的复杂性和性能问题。总之,Flask 的扩展生态助力我们更高效地开发 Web 应用,创造更多优秀作品。
318 0
|
移动开发 JavaScript 前端开发
Python表单处理
Python表单处理
303 1
|
Python
编写自己的Flask扩展:扩展框架的无限可能
【4月更文挑战第16天】本文介绍了如何编写Flask扩展以增强其功能。Flask扩展用于添加框架未内置的高级特性。一个扩展通常包括初始化函数、上下文处理器、命令行工具、信号处理和辅助函数。文中通过一个简单的自定义日志记录扩展示例,展示了创建扩展的步骤。扩展类`CustomLogger`包含初始化、请求前记录日志和自定义日志函数。通过`init_custom_logger`函数在应用中注册扩展。最后,展示了如何在应用中使用该扩展记录日志。编写Flask扩展可实现复杂逻辑、定制命令和处理事件,从而打造功能丰富的Web应用。
|
JSON 安全 API
Flask-Login与Flask-RESTful:扩展你的应用功能
【4月更文挑战第16天】本文介绍了两个实用的Flask扩展——Flask-Login和Flask-RESTful。Flask-Login提供用户认证和会话管理,简化了登录、注销和保护路由的逻辑。而Flask-RESTful则助力构建RESTful API,支持多种HTTP方法和请求解析。通过这两个扩展,开发者能轻松增强Flask应用的功能性,实现安全的用户认证和高效的API交互。
|
前端开发 API 数据库
Flask扩展大观:增强你的Web开发能力
【4月更文挑战第16天】本文介绍了Flask常用扩展,包括数据库扩展Flask-SQLAlchemy和Flask-Migrate,用户认证与权限管理的Flask-Login和Flask-Principal,表单处理的Flask-WTF,静态文件与模板扩展Flask-Assets和Flask-Bootstrap,以及其他实用扩展如Flask-DebugToolbar和Flask-RESTful。这些扩展帮助开发者更高效地构建功能丰富的Web应用。
|
XML JSON API
通过Flask框架创建灵活的、可扩展的Web Restful API服务
通过Flask框架创建灵活的、可扩展的Web Restful API服务
552 1
|
存储 数据库 数据安全/隐私保护
Python中表单的处理
Python中表单的处理
447 0

推荐镜像

更多