Flask模型类表单

wtforms支持的HTML标准字段

字段对象 说明

StringField 文本字段

TextAreaField 多行文本字段

PasswordField 密码文本字段

HiddenField 隐藏文本字段

DateField 文本字段,值为datetime.date格式

DateTimeField 文本字段,值为datetime.datetime格式

IntegerField 文本字段,值为整数

DecimalField 文本字段,值为decimal.Decimal

FloatField 文本字段,值为浮点数

BooleanField 复选框,值为True和False

RadioField 一组单选框

SelectField 下拉列表

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

FileField 文本上传字段

SubmitField 表单提交按钮

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

FieldList 一组指定类型的字段

wtforms.validators常用验证函数

验证函数 说明

DataRequired 确保字段中有数据

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

Length 验证输入的字符串长度

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

URL 验证URL

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

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

配置参数

app.config[“SECRET_KEY”] = “随便写一个字符串”

视图定义表单的模型类

demo.py

from flask import Flask,render_template, session, url_for, redirect

from flask_wtf import FlaskForm

from wtforms import StringField, PassworldField, SubmitField

from wtforms.validators import DataRequired, EqualTo

app = Flask(name)

app.config[‘SECRET_KEY’] = ‘sasfsdfsdfsdfdas’

class RegisterForm(FlaskForm):

username = StringField(label=u"用户名", validators=[DataRequired(u"用户名不能为空")]) 

password = PasswordField(label=u"密码", validators=[DataRequired(u"密码不能为空")]) 

password2 = PasswordField(label=u"确认密码", validators=[DataRequired(u"确认密码不能为空"), EqualTo("password", u"两次密码不一致")]) 

submit = SubmitField(label=u"提交")

@app.route("/register", methods=[“GET”, “POST”])

def register():

form = RegisterForm() 

if form.validate_on_submit(): 

    uname = form.user_name.data

    pwd = form.password.data

    pwd2 = form.password2.data

    print(uname, pwd, pwd2)

    session["user_name"] = uname

    url = url_for("login")

    return redirect(url_for('login'))

return render_template("register.html", form=form)

if name == ‘main’:

app.run(debug=True) 

register.html

  #设置csrf_token

  {{ form.csrf_token() }}

  {{ form.username.label }}

  <p>{{ form.username }}</p>

  {{ form.password.label }}

  <p>{{ form.password }}</p>

  {{ form.password2.label }}

  <p>{{ form.password2 }}</p>

  <p>{{ form.submit() }}</p>

  {% for x in get_flashed_messages() %}

      {{ x }}

  {% endfor %}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值