62.(后端)获取角色列表接口——通过Flask-SQLAlchemy获取数据

本文介绍了如何使用Flask构建RESTful API,包括创建数据库模型,如Role类,使用migrate映射MySQL,创建蓝图对象,编写获取角色列表的接口并进行路由注册,以及应用的初始化。示例代码详细展示了数据库操作和API资源的实现过程。
摘要由CSDN通过智能技术生成

1.概述

通过项目需求,可以分析出菜单model的可以设计的字段与内容

2.创建model利用migrate映射mysql数据库

2.1代码展示

# /flask_shop/models.py
# 此文件用于建立数据库表的模型

# 需要针对数据库的模型
from enum import unique
from flask_shop import db
# 对数据加密         检查密码
from werkzeug.security import generate_password_hash,check_password_hash
from datetime import datetime

# 角色管理
class Role(db.Model):
    __tablename__ = 't_role'
    id = db.Column(db.Integer, primary_key = True)
    name = db.Column(db.String(32), unique=True, nullable = True)
    desc = db.Column(db.String(32))
    # users = db.Column('User', backref='role')
    # menu = db.Column('Menu', secondary = trm)

    def to_dict(self):
        return {
            'id':self.id,
            'name': self.name,
            'desc':self.desc
        }

2.2测试

在这里插入图片描述
具体步骤可以参考我的flask专栏,或者本专栏前几节,里面有专门讲解的

3.创建蓝图对象

# flask_shop/role/__init__.py
# user用于管理用户的蓝图

from flask import Blueprint
# 注册flask_restful路由
from flask_restful import Api

# 创建蓝图,记得要注册
#定义好传递给的变量 蓝图对象名称      前缀名                  
role = Blueprint('role', __name__)

# 注册flask_restful路由
role_api = Api(role)
from flask_shop.role import view

4.编写函数

4.1编写获取数据库中的列表接口,并添加映射

# flask_shop/role/view.py
from flask import request
from flask_shop.role import role,role_api
from flask_shop import models,db
from flask_restful import Resource
from flask_shop.utils.message import to_dict_msg

class Role(Resource):
    def get(self):
        role_list = []
        try:
            roles = models.Role.query.all()
            role_list = [r.to_dict() for r in roles]
            return to_dict_msg(200, role_list, '获取角色列表成功')
        except Exception as e:
            return to_dict_msg(20000)
role_api.add_resource(Role, '/role')

4.2注册路由地址

#flask_shop/__init__.py
# 用于初始化app对象
from flask import Flask
# 导入数据库
from flask_sqlalchemy import SQLAlchemy
# 获取是哪种开发模式
from config import config_map


# 先不连接app对象,否则报错,在下面创建app对象时默认连接数据库,就可以了
db = SQLAlchemy()

def create_app(config_name):
    app = Flask(__name__)
    # 获取到字典中的哪种类,获取到对应的类名,再给到from_object获取到对应的参数
    obj = config_map.get(config_name)
    # 加载数据库到Flask中
    app.config.from_object(obj)
    # 默认连接数据库
    db.init_app(app)

    # 注册用户的蓝图
    # 不可以把这一行放到开头,否则会执行回init,再引用回来会需要创建db,产生报错
    from flask_shop.user import user
    app.register_blueprint(user)

    from flask_shop.menu import menu
    app.register_blueprint(menu)

    from flask_shop.role import role
    app.register_blueprint(role)

    return app

5.测试

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想成为数据分析师的开发工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值