33 - 个人博客项目-04-注册

1. 编写注册页面templates / user/ register.html

        (1). 继承公共模板 和 标题

{% extends 'base.html' %}

{% block title %}
    用户注册
{% endblock %}

        (2).  继承父级模板  样式

{% block styles %}
    {{ super() }}
    
{% endblock %}

        (3).  编写内容

{% block newcontent %}
    

用户注册

{% endblock %}

        (4). 编写 js,校验手机号唯一

{% block scripts %}
    {{ super() }}
    
{% endblock %}

2. 编写注册函数和手机号唯一验证函数

@user_bp.route("/register", methods=["GET", "POST"])
def register():
    if request.method == "POST":
        username = request.form.get("username")
        password = request.form.get("password")
        repassword = request.form.get("repassword")
        phone = request.form.get("phone")
        email = request.form.get("email")
        if password == repassword:
            # 1. 找到模型类并创建对象
            user = User()
            # 2. 给对象的属性赋值
            user.username = username
            # 使用自带的函数实现加密
            user.password = generate_password_hash(password)
            user.phone = phone
            user.email = email
            # 3. 将user对象添加到session中 (类似缓存)
            db.session.add(user)
            # 4. 提交数据
            db.session.commit()
            # 重定向首页(后期自行打开)
            # return redirect(url_for('user.index'))
            return "注册成功"
        else:
            return "两次密码不一致"
    return render_template("user/register.html")
 
 
# 手机号唯一验证
@user_bp.route("/checkphone", methods=["GET", "POST"])
def check_phone():
    phone = request.args.get("phone")
    user = User.query.filter(User.phone == phone).all()
    if len(user) > 0:
        print(user)
        # ajax请求,返回json格式
        return jsonify(code=400, msg="此号码已被注册")
 
    else:
        return jsonify(code=200, msg="此号码可用")

3. base.html 添加注册路径

 
  • 注册
  • 你可能感兴趣的:(Flask,flask)