flask web学习记录(3)

这次学的是表单。需要安装一个flask_wtf

设置

app = Flask(__name__)
app.config['SECRET_KEY'] = "xxxxxxx"
#也可以换成这种app.secret_key = 'xxxxxxx'
#xxxxxxx为密匙,越不好猜越好,是需要设置的

定义表单类

例子定义了一个用户名、一个密码还有一个提交按钮。

from wtforms import StringField,SubmitField,PasswordField
from wtforms.validators import DataRequired,EqualTo
from flask_wtf import FlaskForm

class LoginForm(FlaskForm):
    username = StringField('用户名:', validators=[DataRequired()])
    password = PasswordField('密码:', validators=[DataRequired()])
    submit = SubmitField('提交')
字段说明
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验证函数:

忽然发现我为什么要写这个?我直接贴别人写好的不就行了。验证函数表

 

@app.route('/',methods=['GET','POST'])
def index():
    name=None
    login_form = LoginForm()
    if request.method == "POST":
        username = request.form.get('username')
        password = request.form.get('password')

        if login_form.validate_on_submit():
            # 进入这里就表示所有的逻辑都验证成功
            return 'success'

        else:

            flash('参数有误')

        # 把实例化后的register_form传入到页面wtf.html中
    return render_template('index.html',form=login_form)

 

重定向和用户会话

 

Flash消息

渲染flash消息

{% block content %}
<div class="container">
    {% block body %}
    {% for message in get_flashed_messages() %}
    <div class="alert alert-warning">
        <button type="button" class="close" data-dismiss="alert">&times;</button>
        {{ message }}
    </div>
    {% endfor %}

    {% endblock %}
</div>
{% endblock %}

未完待续(由于时间问题暂时写到这里,目标是写一个登陆界面)

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值