这次学的是表单。需要安装一个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">×</button>
{{ message }}
</div>
{% endfor %}
{% endblock %}
</div>
{% endblock %}
未完待续(由于时间问题暂时写到这里,目标是写一个登陆界面)