Skip to content

表单

安装依赖

shell
pip install flask-wtf

查看代码

https://gitee.com/PatrickW/flask-web/blob/master/src/7form.py

https://gitee.com/PatrickW/flask-web/blob/master/src/templates/form.html

python
from flask import Flask, render_template, flash, redirect, url_for
from flask_bootstrap import Bootstrap
from flask_wtf import FlaskForm
from wtforms import (StringField, SubmitField, EmailField, 
                    SelectField, TextAreaField, PasswordField)
from wtforms.validators import DataRequired, Email, Length, EqualTo

app = Flask(__name__)
app.config['SECRET_KEY'] = 'abcdefghijklmnopqrstuvwxyz'
bootstrap = Bootstrap(app)

class NameForm(FlaskForm):
    name = StringField('姓名', validators=[DataRequired(), Length(min=2, max=20)])
    email = EmailField('邮箱', validators=[DataRequired(), Email()])
    password = PasswordField('密码', 
                           validators=[DataRequired(), 
                                     Length(min=6, message='密码至少需要6个字符')])
    confirm_password = PasswordField('确认密码',
                                   validators=[DataRequired(),
                                             EqualTo('password', message='两次密码必须匹配')])
    about_me = TextAreaField('个人简介')
    submit = SubmitField('提交')

@app.route('/', methods=['GET', 'POST'])
def index():
    form = NameForm()
    if form.validate_on_submit():
        # 表单验证成功后的处理
        flash(f'欢迎您 {form.name.data}!注册成功。', 'success')
        return redirect(url_for('index'))
    return render_template('form.html', form=form)

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=SERVER_PORT, debug=True)

注册页面

image-20250118112935660

注册成功

image-20250118112811949