flask web学习记录(3)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_20539533/article/details/84068452

这次学的是表单。需要安装一个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 %}

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

猜你喜欢

转载自blog.csdn.net/qq_20539533/article/details/84068452