您好,欢迎来到五一七教育网。
搜索
您的当前位置:首页登录,注册(flask)

登录,注册(flask)

来源:五一七教育网

思路

可以把登录注册写到一个视图里边,用一个post方法来实现登录注册

代码的实现

注册的模型类

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True, comment="用户ID")
    phone = db.Column(db.String(11),comment="电话号码")
    username = db.Column(db.String(32),default="",comment="用户名")
    password = db.Column(db.String(16),default="",comment="密码")

注册蓝图

新建一个文件写入蓝图

from flask import Blueprint
user_bp = Blueprint("work_bp",__name__,url_prefix="/work")

在create_app下注册

from flask import Flask
from views.user import work_bp
from models.model import db
from flask_cors import CORS

def create_app(config):
    flask_app = Flask(__name__)

    flask_app.config.from_object(config)

    db.init_app(flask_app)

    cors = CORS(flask_app)

    flask_app.register_blueprint(work_bp)

    return flask_app

注册路由

from flask import Blueprint
from flask_restful import Api,Resource
user_bp = Blueprint("work_bp",__name__,url_prefix="/work")
api = Api(work_bp)
class UserView(Resource):
    def post(self):
		pass
api.add_resource(UserView,"/user")

写视图

class UserView(Resource):
    def get(self):
        user_info = User.query.all()
        user_list = []
        for i in user_info:
            u = {
                "username": i.username,
                "img": i.img
            }
            user_list.append(u)
        return jsonify({
            "code": 200,
            "msg": "获取成功",
            "data":user_list
        })
    def post(self):
        req = reqparse.RequestParser()
        req.add_argument("phone",required=True)
        req.add_argument("password")
        req.add_argument("code")
        args = req.parse_args()
        s = SmsTool()
        key = "sms_%s"%args["phone"]
        code_byte = s.rds.get(key)
        if not code_byte:
            return jsonify({
                "code": 400,
                "msg": "验证码过期"
            })
        if args["code"] != code_byte.decode():
            return jsonify({
                "code": 400,
                "msg": "验证码错误"
            })
        user_info = User.query.filter(User.phone == args["phone"]).first()
        if not user_info:
            u1 = User(phone=args["phone"],password=args["password"])
            db.session.add(u1)
            db.session.commit()
            return jsonify({
                "code": 200,
                "msg": "注册成功"
            })
        user_info = User.query.filter(User.phone == args["phone"]).first()
        if user_info:
            if user_info.password != args["password"]:
                return jsonify({
                    "code": 200,
                    "msg": "密码错误"
                })
            token = JwtTool().create({
                "uid": user_info.id,
                "username": user_info.username
            })
            return jsonify({
                "code": 200,
                "msg": "登录成功",
                "token": token
            })

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务