flask插件之Flask-WTF表单、flask_SQLAlchemy数据库的使用

环境:python3.5,Flask1.0.3
查看官方文档:http://www.pythondoc.com/flask-wtf/form.html

先pip安装

flask_wtf是flask框架的表单验证模块,可以很方便生成表单,也可以当做json数据交互的验证工具,支持热插拔。

pip install flask-WTF

需要csrf保护

设置app.secret_key即可

app.secret_key = 'qwertyudfghjkl;xcvbn'

最后,我们需要在响应的html模板的Form表单中加上如下语句:

{
  {form.csrf_token}}

或者:

{
  {form.hidden_tag()}}

其中的form是views.py中对应处理函数传递过来的Form对象名称,根据具体情况会有所变化。通过上面的配置,我们就启动了CSRF保护。

创建表单

通常是设置为一个表单类,然后在视图函数初始化为表单对象:
注意这个写完id也给你写了,默认等于name等于label

class RegisterForm(Form):
    # 用户名,分别验证为必须字段,长度,以及额外设置属性
    username = StringField('用户名:', [validators.data_required, validators.length(min=3, max=20)], render_kw={
   'placeholder': '输入用户名'})
    # email = StringField('Email Address', [validators.Length(min=6, max=35)])
    # 密码和确认密码,需要验证是否一致,注意字段名不能填错
    password = PasswordField('密码:', [
        validators.DataRequired(),
        validators.EqualTo('confirm', message='密码必须一致')
    ])
    confirm = PasswordField('确认密码:')
    # 这个是是否接收条件
    # accept_tos = BooleanField('I accept the TOS', [validators.DataRequired()])
    # 提交按钮
    submit = SubmitField('注册')

然后在视图函数初始化并返回:

@app.route('/register', methods=['GET', 'POST'])
def register():
    form = RegisterForm(request.form)
    if request.method == 'POST' and form.validate():
    	# 这里准备些注册数据库
        return 'register success'
        
    return render_template('register.html', form=form)

最后是html内容显示,在body里写即可:

<form method="post" enctype="multipart/form-data">
{#    {
  { form.hidden_tag() }}#}
    {
  { form.csrf_token }}

    {
  { form.username.label }}{
  { form.username }}<br>
    {
  { form.password.label }}{
  { form.password }}<br>
    {
  { form.confirm.label }}{
  { form.confirm }}<br>
    {
  { form.submit }}<br>

</form>

创建用户模型

在mysql准备一个数据库例如名为flask的数据库
然后安装关系扩展和mysqldb:

pip install flask-sqlalchemy
pip install flask-mysqldb

先用app注册数据库地址:

# 用于连接数据库的uri地址,账户密码
    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:mysql@127.0.0.1:3306/flask'

然后创建用户模型:

from flask_sqlalchemy import SQLAlchemy

app 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值