python的基础以及提高

Python day43_Flask入门

2018-07-08  本文已影响0人  g_s_007

使用 Flask-WTF 实现表单

代码 用于表单验证:

#python部分:

from flask import Flask,render_template
from flask import flash
from flask import request
from flask_wtf import FlaskForm
from wtforms import SubmitField,StringField,PasswordField
from wtforms.validators import DataRequired,EqualTo

app = Flask(__name__)
# 关闭CSRF 表单验证
app.config['WTF_CSRF_ENABLED'] = False
app.secret_key = 'zhangsan'
# 自定义表单类(表单样式 和验证逻辑)
class registerForm(FlaskForm):
# < label > 用户名: < / label > < input type = "text" name = "username" placeholder = "请输入用户名" > < br / >
# StringField :文本框 看Field类
# 传值:第一个是label 值, 第二个是验证器 render_kw 就是一个提示信息
# validators=[DataRequired()] :只要写入这个 就说明(验证) 文本框输入内容不能为空
username = StringField('用户名:',validators=[DataRequired()],render_kw={'placeholder':'请输入用户名'})
password = PasswordField('密码:',validators=[DataRequired()],render_kw={'placeholder':'请输入密码'})
# EqualTo(password, '两次密码不一致'): 增加了另一个验证器, 第一个参数 是要对比的文本框, 第二个参数 对比失败时的提示
password2 = PasswordField('确认密码:',validators=[DataRequired(),EqualTo('password','两次密码不一致')],render_kw={'placeholder':'请输入确认密码'})
submit = SubmitField('注册')

# 创建表单类传入模板
@app.route('/wtf_form',methods=['GET','POST'])
def wtf_form():
# 创建模板
register_form = registerForm()
# 模板中使用变量代码块来显示
# 验证
if request.method =='POST':
# validate_on_submit: 在提交时执行验证逻辑(此时的逻辑,在自定义的类中)
if register_form.validate_on_submit():
# 如果能进入这里, 说明所有的验证全部通过
return 'success'
else:
flash('参数有误')
# 将模板传入html
return render_template('09_index.html',form = register_form)

if __name__ == '__main__':
app.run(debug=True)

#html部分:

<body>
    <form method="post">
        {{ form.username.label }} {{ form.username }} <br>
        {{ form.password.label }} {{ form.password }} <br>
        {{ form.password2.label }} {{ form.password2 }} <br>
        {{ form.submit }} <br>
    </form>
{% for message in get_flashed_messages() %}
    {{ message }}
{% endfor %}
</body>

WTForms支持的HTML标准字段

字段对象 说明
StringField 文本字段

TextAreaField 多行文本字段

PasswordField 密码文本字段

HiddenField 隐藏文件字段

DateField 文本字段,值为 表单对象.DataFiled.data 文本格式

IntegerField 文本字段,值为整数

DecimalField 文本字段,值为decimal.Decimal

FloatField 文本字段,值为浮点数

BooleanField 复选框,值为True 和 False

RadioField 一组单选框

SelectField 下拉列表

SelectMutipleField 下拉列表,可选择多个值

FileField 文件上传字段

SubmitField 表单提交按钮

FormField 把表单作为字段嵌入另一个表单

FieldList 一组指定类型的字段

WTForms常用验证函数

验证函数 说明

DataRequired 确保字段中有数据

EqualTo 比较两个字段的值,常用于比较两次密码输入

Length 验证输入的字符串长度

NumberRange 验证输入的值在数字范围内

URL 验证URL

AnyOf 验证输入值在可选列表中

NoneOf 验证输入值不在可选列表中

上一篇下一篇

猜你喜欢

热点阅读