博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
flask简单的注册功能
阅读量:4961 次
发布时间:2019-06-12

本文共 5624 字,大约阅读时间需要 18 分钟。

1184359-20180206210117466-1410011875.png

from datetime import datetimefrom app import db# 会员class User(db.Model):    __tablename__ = "user"    id = db.Column(db.Integer, primary_key=True)  # 编号    name = db.Column(db.String(100), unique=True)  # 昵称    pwd = db.Column(db.String(100))  # 密码    email = db.Column(db.String(100), unique=True)  # 邮箱    phone = db.Column(db.String(11), unique=True)  # 手机号码    info = db.Column(db.Text)  # 个性简介    face = db.Column(db.String(255), unique=True)  # 头像    addtime = db.Column(db.DateTime, index=True, default=datetime.now)  # 注册时间    uuid = db.Column(db.String(255), unique=True)  # 唯一标志符    userlogs = db.relationship('Userlog', backref='user')  # 会员日志外键关系关联    comments = db.relationship('Comment', backref='user')  # 评论外键关系关联    moviecols = db.relationship('Moviecol', backref='user')  # 收藏外键关系关联    def __repr__(self):        return "
" % self.name # 检查密码匹配 def check_pwd(self, pwd): from werkzeug.security import check_password_hash return check_password_hash(self.pwd, pwd)

第一步:定制forms表单

1184359-20180206210206232-783585516.png

# -*- coding: utf-8 -*-# @Author: Laifrom flask_wtf import FlaskFormfrom wtforms import StringField, PasswordField, SubmitFieldfrom wtforms.validators import DataRequired, EqualToclass RegistForm(FlaskForm):    name = StringField(        label="昵称",        description="昵称",        validators=[            DataRequired("请输入昵称"),        ],        render_kw={            "class": "form-control input-lg",            "placeholder": "昵称",        }    )    email = StringField(        label="邮件",        description="邮件",        validators=[            DataRequired("请输入邮件"),        ],        render_kw={            "class": "form-control input-lg",            "placeholder": "邮件",        }    )    phone = StringField(        label="电话",        description="电话",        validators=[            DataRequired("请输入电话"),        ],        render_kw={            "class": "form-control input-lg",            "placeholder": "电话",        }    )    pwd = PasswordField(        label="密码",        description="密码",        validators=[            DataRequired("请输入密码"),        ],        render_kw={            "class": "form-control input-lg",            "placeholder": "密码",        }    )    repwd = PasswordField(        label="",        description="",        validators=[            DataRequired("请再次输入密码"),            EqualTo("pwd", message="前后密码不一致"),        ],        render_kw={            "class": "form-control input-lg",            "placeholder": "再次输入密码",        }    )    submit = SubmitField(        label="注册",        render_kw={            "class": "btn btn-lg btn-success btn-block",        }    )    def validate_phone(self, field):        phone = field.data        rex = "1[358]\d{9}"        if not re.findall(rex, phone):            raise ValidationError("手机格式不正确")

第二步:改造html模板

1184359-20180206211732435-847454882.png

{
{ form.name }}
{% for err in form.name.errors %}
{
{ err }}
{% endfor %}
{
{ form.email }}
{% for err in form.email.errors %}
{
{ err }}
{% endfor %}
{
{ form.phone }}
{% for err in form.phone.errors %}
{
{ err }}
{% endfor %}
{
{ form.pwd }}
{% for err in form.pwd.errors %}
{
{ err }}
{% endfor %}
{
{ form.repwd }}
{% for err in form.repwd.errors %}
{
{ err }}
{% endfor %} {
{ form.submit }} {
{ form.csrf_token }}

第三步:接收post请求数据存入数据库

from . import homefrom flask import render_template, redirect, url_for, flashfrom .forms import RegistFormfrom werkzeug.security import generate_password_hashfrom app.models import Userfrom app import db@home.route("/regist/", methods=["GET", "POST"])def regist():    form = RegistForm()    if form.validate_on_submit():        data = form.data        name = data.get("name")        email = data.get("email")        phone = data.get("phone")        pwd = generate_password_hash(data.get("pwd"))        user = User(            name=name,            email=email,            phone=phone,            pwd=pwd,        )        db.session.add(user)        db.session.commit()        flash("注册成功", "ok")        return redirect(url_for('home.login'))    return render_template("home/regist.html", form=form)

转载于:https://www.cnblogs.com/lilied/p/8424218.html

你可能感兴趣的文章
页面懒加载
查看>>
向量非零元素个数_向量范数详解+代码实现
查看>>
java zip 中文文件名乱码_java使用zip压缩中文文件名乱码的解决办法
查看>>
java if 用法详解_Java编程中的条件判断之if语句的用法详解
查看>>
kafka的java客户端_KAFKA Producer java客户端示例
查看>>
java -f_java学习笔记(一)
查看>>
java 什么题目好做_用java做这些题目
查看>>
java中的合同打印_比较方法违反了Java 7中的一般合同
查看>>
php 位运算与权限,怎么在PHP中使用位运算对网站的权限进行管理
查看>>
php include效率,php include类文件超时
查看>>
matlab sin函数 fft,matlab的fft函数的使用教程
查看>>
wcdma下行如何解扩解扰 matlab,WCDMA技术基础.ppt
查看>>
MySQL date_format() 函数
查看>>
mysql 时间处理
查看>>
mysql adddate()函数
查看>>
mysql addtime() 函数
查看>>
mysql 根据日期时间查询数据
查看>>
mysql 创建时间字段
查看>>
mysql 生成随机数rand()
查看>>
mysql e的n次幂exp()
查看>>