Flask——flask-wtf

 

目錄

  1. 創建表單
  2. 添加視圖函數
  3. 渲染表單
  4. 字段類型
  5. 驗證器

安裝: pip install flask-wtf
  1. 創建表單


    from flask_wtf import FlaskForm  # 表單基類
    from wtforms import StringField, PasswordField, SubmitField
    from wtforms.validators import DataRequired, Length, EqualTo, Email
    
    app = Flask(__name__)
    app.config['SECRET_KEY'] = 'SECRET_KEY'
    maanger = Manager(app)  # 表單註冊類
    
    
    class Register(FlaskForm):
        username = StringField('⽤戶名', validators=[DataRequired('請輸名'), Length(min=6, max=12, message='名範圍在6~12位之間')])
        userpass = PasswordField('密碼', validators=[DataRequired('請輸密碼'), Length(min=6, max=12, message='密碼範圍在6~12位之間')])
        confirm = PasswordField('確認密碼', validators=[DataRequired('確認密碼'), EqualTo('userpass', message='密碼和確認密碼不一致')])
        email = StringField('郵箱', validators=[DataRequired('請輸郵箱地址'), Email(message='請輸正確的郵箱')])
        submit = SubmitField('註冊')
    

     

  2. 添加視圖函數

    # 註冊
    @app.route('/register/', methods=['GET', 'POST'])
    def register():
        form = Register()  # 實例化表單類
        # 這個⽅法是實現表單校驗功能的 csrf,數據正確性 都通過了 則爲真 否則爲假
        if form.validate_on_submit():
            # print(request.form)
            print(form.username)  # 拿到username的整個標籤
            print(form.username.data)  # 取出username⾥⾯的value值
            return '數據提交過來了'
        return render_template('register.html', form=form)

     

  3. 渲染表單

    <!DOCTYPE html>
    <html lang="en"> <head>
     <meta charset="UTF-8">
     <title>Title</title>
    </head> <body> <h2>flask-wtf的表單類</h2> <form action="{{ url_for('register') }}" method="post">
     {# csrf #}
     {{ form.csrf_token }}
     {{ form.username.label }}
     {{
    form.username(style="color:red;",class='myself',placeholder='請輸
    ⼊⽤戶名...') }} #給當前的標籤添加屬性和值 關鍵字參數
     #循環迭代取出驗證失敗的錯誤信息(也就是你在驗證器⾥的屬性message的
    值)
     {% for error in form.username.errors %}
     <span style="color:red;">{{ error }}</span>
     {% endfor %}
     <br>
     {{ form.userpass.label }}
     {{ form.userpass }}
     {% for error in form.userpass.errors %}
     <span style="color:red;">{{ error }}</span>
     {% endfor %}
     <br>
    {{ form.confirm.label }}
     {{ form.confirm() }}
     {% for error in form.confirm.errors %}
     <span style="color:red;">{{ error }}</span>
     {% endfor %}
     <br>
     {{ form.email.label }}
     {{ form.email() }}
     {% for error in form.email.errors %}
     <span style="color:red;">{{ error }}</span>
     {% endfor %}
     <br>
     {{ form.submit() }}
    </form>
    </body>
    </html>

     

  4. 字段類型


  5. 驗證器


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章