澳门至尊网站-首页

您的位置:澳门至尊网站 > 技术教程 > 从三个实例学习

从三个实例学习

2019-10-24 12:13

  本案例通过贯彻三个报了名页面的编排,来带你精通FLASK-WTF的运用.

  

  首要功效为表单基础的效果与利益--手提式有线电话机号码一定要为10位数,且经过数据库查找无法有曾经登记的了,密码需求输入五回且必得生龙活虎致,且具有内容不能够为空的提醒等内容.那么以后就起来把!

  

  大器晚成.创建表单类.

    首先使用flask-wtf你不得不确定保证您的条件中早已设置wtf,假设你是python3的情状,大家得以因而 pip3 install Flask-WTF 来进展安装.

 

    安装好了随后我们来举行导入:    

      from flask_wtf import Form
      from wtforms import StringField, SubmitField, PasswordField, ValidationError
      from wtforms.validators import DataRequired, EqualTo, Length
      from models import USER

    

    让大家一步步来精通!!

    

    第风姿洒脱行代码我们从 falsk-wtf 中程导弹入了 Form 类,今后大家创制的兼具表单类都要再三再四自这一个类.

    第二行代码大家从 wtforms  中程导弹入了 StringField,SubmitField,PasswordField,ValidationError ,那么这么些事物是用来干什么的啊?笔者深信只要有些过一些HTML的人应该都认知HTML表单中<input>成分的type="text",type="submit",type="password"这类属性吧.原理是均等的.

    第三行代码大家又从 wtforms.validators 中程导弹入了 DataRequired,EqualTo,Length ,个中 DataRequired用来证实表单数据不能为空, EqualTo 常用来相比较几个代码是或不是极度, Length 用来界定字符长度.

    第四行代码是导入数据库模型的USECR-V类,用来查询数据库中是还是不是曾经注册了手提式有线电话机号.假设已经登记了,再用第二行代码的 ValidationError 来抛出警报.

    

    实举个例子下:      

    class Regist(Form):
        phone = StringField("请输入手机号", validators=[DataRequired(), Length(min=11, max=11, message="手机号码是11位数")])
        name = StringField("请输入用户名", validators=[DataRequired()])
        password = PasswordField("请输入密码", validators=[DataRequired()])
        password1 = PasswordField("请重复密码", validators=[DataRequired(), EqualTo("password", "密码必须一样")])
        submit = SubmitField("立即提交")

        def validate_phone(self, field):
            if USER.query.filter_by(phone=field.data).first():
                raise ValidationError("傻子,你的手机号码被注册了!!")

     如此三个注册表单类就创设成功了!!

  

 二.视图函数中编辑逻辑

    本身先直接把代码列出来:     

      # 注册界面
      @app.route("/regist/", methods=["GET", "POST"])
      def regist():
          form = Regist()
          if form.validate_on_submit():
              telephone = form.phone.data
              username = form.name.data
              password = form.password.data
              if form.validate_phone():
                  user = USER(phone=telephone, name=username, password=password)
                  db.session.add(user)
                  db.session.commit()
                  return redirect(url_for("login"))
          else:
              return render_template("regist.html", form=form)

       

      我们先用  form=Regist() 实例化二个表单类的靶子,后边紧跟着叁个尺度语句, validate_on_submit 意思是判断表单内的多少是否为空,最大尺寸是还是不是....等先前设置的节制条件以致剖断表单内容是还是不是付出过了.若是是,那么就意味着大家付出了表单数据,而且开展末端的操作,假诺不是.就表示我们只是张开了那么些注册页面,用 return render_template("regist.html", form=form)  渲染模板,而且把实例化的目的form作为参数字传送递到模板中.

      

      大家跟着继续提交表单后的代码精晓 telephone = form.phone.data    username = form.name.data   password = form.password.data  那三行代码是收获客商填写的手提式有线电话机号,客户名,密码这一个数据.

      

      获取之后,我们在开展决断.调用注册表单类的validate_phone()函数,假诺忘记内容能够再看看上边.假设为true,就代表着这一个手提式有线电话机号未有被注册,继续拓展末端的把顾客填写的多少存进数据库的操作.

        user = USER(phone=telephone, name=username, password=password)

      

      这段代码的意趣是USEENCORE客户表中有phone,name,password的属性.我们把获得的客户数据telephone,username,password赋值给它,在经过 db.session.add(user) db.session.commit() 这两行代码提交到数据库中.

      

      数据库中是用到了flask-sqlalchemy,这里不做具体批注,以往有机会再讲.小编把代码贴出来:         

lass USER(db.Model):
    __tablename__="user"
                 id=db.Column(db.Integer,primary_key=True,autoincrement=True)
    phone=db.Column(db.String(11),nullable=False)
    name=db.Column(db.String(50),nullable=False)
    password=db.Column(db.String(100),nullable=False)        

   

 三.在模板中央银行使

      其三步也是最终一步.就算你的档期的顺序接受了flask-bootstrap的话,能够由此:         

        {% import "bootstrap/wtf.html" as wtf %}

        <form action="" method="post">
              {% block page_content %}
                    {{ wtf.quick_form(form) }}
              {% endblock %}
          </form>

      

      wtf.quick_form(form)直接扭转表单,是否很方便?当然未有样式,假使您要加多样式的话能够这么:        

          <form method="POST">
            {{ form.hidden_tag() }}
            {{ form.name.label }} {{ form.name(id='my-text-field') }}
            {{ form.submit() }}
            </form>

      

      好了,到此地就命赴黄泉了.假如你把这几个全弄懂了,你还足以一直阅读它的汉语文书档案. 

                                                              待续..........

本文由澳门至尊网站发布于技术教程,转载请注明出处:从三个实例学习

关键词:

  • 上一篇:没有了
  • 下一篇:没有了