目录结构
视图
# -*- coding:utf-8 -*- # Author : Niuli # Data : 2019-02-27 19:26 from flask import render_template from flask import request from flask import session from flask import views from flask import Blueprint from wtforms import Form,validators,widgets from wtforms.fields import simple,core user_bp = Blueprint('user_bp',__name__) # class User(views.MethodView): def get(self): return 'hello' user_bp.add_url_rule('/', view_func=User.as_view(name='index')) class LoginForm(Form): username = simple.StringField( label='用户名:', validators=[ validators.DataRequired(message='用户名不能为空'), validators.Length(min=4,max=8,message='用户名不符合规定(大于4位且小于8位)'), ] ) password = simple.PasswordField( label='密码:', validators=[ validators.Length(min=3,max=8,message='密码不能小于3位或大于8位'), validators.DataRequired(message='密码不能为空!') ] ) class Login(views.MethodView): def get(self): login_form = LoginForm() return render_template('login.html', loginform=login_form) def post(self): # 校验 user_info = LoginForm(request.form) # 如果校验成功 if user_info.validate(): session['user'] = user_info.data.get('username') return str(session['user']) return render_template('login.html',loginform=user_info) user_bp.add_url_rule('/login', view_func=Login.as_view(name='login')) class RegForm(Form): username = simple.StringField( label='用户名: ', validators=[ validators.DataRequired(message='用户名不能为空'), ], render_kw={'class': 'my_class'} # 更改标签class ) pwd = simple.PasswordField( label='密码: ', validators=[ validators.DataRequired(message='密码不能为空'), validators.Length(min=4,max=8) ] ) repwd = simple.PasswordField( label='确认密码: ', validators=[ validators.EqualTo('pwd',message='两次密码不一致') ] ) gender = core.SelectField( label='性别: ', choices=( (1,'男'), (2,'女') ), default=1, coerce=int ) email = simple.StringField( label='邮箱: ', validators=[ validators.Email(message='邮箱格式有误!') ] ) hobby = core.SelectMultipleField( label='爱好: ', choices=( (1,'吃'), (2,'喝'), (3,'玩'), (4,'乐') ), coerce=int, default=(1,2) ) class Regist(views.MethodView): def get(self): reg_info = RegForm() print('*'*88) return render_template('reg.html',re=reg_info) def post(self): reg_info = RegForm(request.form) if reg_info.validate(): return '注册成功!' return render_template('reg.html',re=reg_info) user_bp.add_url_rule('/reg',view_func=Regist.as_view(name='reg'))