瓶中的wtforms使用方法

  

  

WTForms是一个支持多个网框架的形式组件,主要用于对用户请求数据进行验证。

  

安装:         pip3安装wtforms      

  

1,用户登录

  

烧瓶中的wtforms使用方法

  

具体代码:

        从进口瓶瓶,render_template请求,重定向   从wtforms。进口核心领域   从wtforms。html5领域导入   从wtforms。领域导入简单   从wtforms导入形式   从wtforms导入验证器   从wtforms进口部件   应用=瓶(__name__ template_folder=澳0濉?      类Myvalidators(对象):   “自定义验证规则“   def __init__(自我、消息):   自我。消息=消息   def __call__(自我、表单字段):   打印(field.data,“用户输入的信息”)   如果字段。data=https://www.yisu.com/zixun/=昂Q唷?   回来没有   提高validators.ValidationError (self.message)      类LoginForm(形式):   “形式”   name=simple.StringField (   label="用户名”,   小部件=widgets.TextInput (),   验证器=[   Myvalidators(消息="用户名必须是海盐”),#也可以自定义正则   validators.DataRequired(消息="用户名不能为空”),   validators.Length (max=8分钟=3,消息=坝没ざ缺匦氪笥? (max) d且小于% (min) d”)   ),   render_kw={“类”:“表单控件”}#设置属性   )      pwd=simple.PasswordField (   label="密码”,   验证器=[   validators.DataRequired(消息="密码不能为空”),   validators.Length (max=8分钟=3,消息=懊苈氤ざ缺匦氪笥? (max) d且小于% (min) d”),   validators.Regexp (regex=" \ d + ",消息=懊苈氡匦胧鞘帧?,   ),   小部件=widgets.PasswordInput (),   render_kw={“类”:“表单控件”}   )            @app.route(/登录,方法=(“会”、“文章”))   def登录():   如果请求。方法==盎竦谩?   形式=LoginForm ()   返回render_template (“login.html”形式=形式)   其他:   形式=LoginForm (formdata=https://www.yisu.com/zixun/request.form)   如果form.validate ():   打印(“用户提交的数据用过格式验证,值为:% s“% form.data)   返回“登录成功”   其他:   打印(form.errors,“错误信息”)   返回render_template (“login.html”形式=形式)         if __name__==癬_main__”:   # app.__call__ ()   app.run (debug=True)      

login.html         & lt; body>   & lt;形式action="方法=皃ost”novalidate>   & lt; p> {{form.name.label}} {{form.name}} {{form.name.errors.0}} & lt;/p>   & lt; p> {{form.pwd。标签}}{{形式。pwd}} {{form.pwd.errors。0}}& lt;/p>   & lt;输入类型="提交" value=" https://www.yisu.com/zixun/提交”比;   & lt; !——用户名:& lt;输入类型=拔谋尽弊4恰?   & lt; !——密码:& lt;输入类型=懊苈搿弊4恰?   & lt; !——& lt;输入类型=疤峤弧眝alue=" https://www.yisu.com/zixun/提交“祝辞——比;   & lt;/form>   & lt;/body>      

2,用户注册

  

烧瓶中的wtforms使用方法

        从进口瓶瓶,render_template,重定向请求   从wtforms导入形式   从wtforms。进口核心领域   从wtforms。html5领域导入   从wtforms。领域导入简单   从wtforms导入验证器   从wtforms进口部件      应用=瓶(__name__ template_folder=澳0濉?   app.debug=True=======================简单===========================类RegisterForm(形式):   name=simple.StringField (   label="用户名”,   验证器=[   validators.DataRequired ()   ),   小部件=widgets.TextInput (),   render_kw={“类”:“表单控件”},   默认=昂Q唷?   )   pwd=simple.PasswordField (   label="密码”,   验证器=[   validators.DataRequired(消息="密码不能为空”)   ]   )   pwd_confim=simple.PasswordField (   label="重复密码”,   验证器=[   validators.DataRequired(消息='重复密码不能为空。”),   validators.EqualTo (pwd,消息="两次密码不一致”)   ),   小部件=widgets.PasswordInput (),   render_kw={“类”:“表单控件”}   )========================html5============================电子邮件=html5。EmailField(#注意这里用的是html5.EmailField   标签='邮箱”,   验证器=[   validators.DataRequired(消息='邮箱不能为空。”),   validators.Email(消息='邮箱格式错误的)   ),   小部件=widgets.TextInput(要='邮件'),   render_kw={“类”:“表单控件”}   )===================以下是用核心来调用的=======================性别=core.RadioField (   label="性别”,   选择=(   (1,“男”),   (1,“女”),   ),   强迫=int #限制是int类型的   )   城市=core.SelectField (   label="城市”,   选择=(   (“bj”、“北京”),   (“上海”、“上海”),   )   )   爱好=core.SelectMultipleField (   标签='爱好”,   选择=(   (1,'篮球”),   (2,'足球”),   ),   强迫=int   )   忙=core.SelectMultipleField (   label="喜好”,   选择=(   (1,'篮球”),   (2,'足球”),   ),   小部件=widgets.ListWidget (prefix_label=False),   option_widget=widgets.CheckboxInput (),   强迫=int,   默认=[1,2]   )      def __init__(自我,* args, * * kwargs): #这里的自我是一个RegisterForm对象   “重写__init__方法”   超级(RegisterForm,自我)。__init__ (* args, * * kwargs) #继承父类的初始化方法   self.favor。选择=((1,”篮球”),(2,'足球”),(3,“羽毛球”))#吧RegisterForm这个类里面的支持重新赋值      def validate_pwd_confim(自我、字段):   “‘   自定义pwd_config字段规则,例:与pwd字段是否一致   :参数字段:   返回:   “‘   #最开始初始化时,self.data中已经有所有的值   如果字段。数据!=self.data (pwd的):   #提高validators.ValidationError(“密码不一致”)#继续后续验证   提高validators.StopValidation(“密码不一致”)#不再继续后续验证      @app.route(/注册,方法=(“会”、“文章”))   def注册():   如果request.method==暗玫健?   形式=RegisterForm (data=https://www.yisu.com/zixun/{“性别”:1})#默认是1,   返回render_template (“register.html”形式=形式)   其他:   形式=RegisterForm (formdata=https://www.yisu.com/zixun/request.form)   如果form.validate(): #判断是否验证成功   打印(“用户提交数据通过格式验证,提交的值为:“,form.data) #所有的正确信息   其他:   打印(form.errors) #所有的错误信息   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

瓶中的wtforms使用方法