介绍
使用方式
py文件中
| from flask import Flask, render_template, request, redirect |
| from wtforms import Form |
| from wtforms.fields import simple |
| from wtforms import validators |
| from wtforms import widgets |
| |
| app = Flask(__name__, template_folder='templates') |
| |
| app.debug = True |
| |
| |
| class LoginForm(Form): |
| |
| name = simple.StringField( |
| label='用户名', |
| validators=[ |
| validators.DataRequired(message='用户名不能为空.'), |
| validators.Length(min=6, max=18, message='用户名长度必须大于%(min)d且小于%(max)d') |
| ], |
| widget=widgets.TextInput(), |
| render_kw={'class': 'form-control'} |
| |
| ) |
| |
| pwd = simple.PasswordField( |
| label='密码', |
| validators=[ |
| validators.DataRequired(message='密码不能为空.'), |
| validators.Length(min=8, message='用户名长度必须大于%(min)d'), |
| validators.Regexp(regex="^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}", |
| message='密码至少8个字符,至少1个大写字母,1个小写字母,1个数字和1个特殊字符') |
| |
| ], |
| widget=widgets.PasswordInput(), |
| render_kw={'class': 'form-control'} |
| ) |
| |
| |
| |
| @app.route('/login', methods=['GET', 'POST']) |
| def login(): |
| if request.method == 'GET': |
| form = LoginForm() |
| return render_template('login.html', form=form) |
| else: |
| form = LoginForm(formdata=request.form) |
| if form.validate(): |
| print('用户提交数据通过格式验证,提交的值为:', form.data) |
| else: |
| print(form.errors) |
| return render_template('login.html', form=form) |
| |
| if __name__ == '__main__': |
| app.run() |
| |
HTML中
| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <title>Title</title> |
| </head> |
| <body> |
| <h1>登录</h1> |
| <form method="post"> |
| <p>{{form.name.label}} {{form.name}} {{form.name.errors[0] }}</p> |
| <p>{{form.pwd.label}} {{form.pwd}} {{form.pwd.errors[0] }}</p> |
| <input type="submit" value="提交"> |
| </form> |
| </body> |
| </html> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步