会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132440个问题
Python 全系列/第一阶段:Python入门/编程基本概念 19801楼

t_m_r = db.Table('t_menu_role',
               db.Column('rid', db.Integer, db.ForeignKey('t_role.id')),
               db.Column('mid', db.Integer, db.ForeignKey('t_menu.id'))
               )

class Menu(db.Model):
    __tablename__ = 't_menu'
    id = db.Column(db.Integer, unique=True, primary_key=True)
    name = db.Column(db.String(32), unique=True, nullable=False)
    level = db.Column(db.Integer)
    path = db.Column(db.String(32))

    pid = db.Column(db.Integer, db.ForeignKey('t_menu.id'))
    children = db.relationship('Menu')
    roles = db.relationship('Role', secondary=t_m_r)

    def to_dict(self):
        return {
            'id': self.id,
            'name': self.name,
            'level': self.level,
            'path': self.path,
            'pid': self.pid
        }
    
    def get_child_list(self):
        obj_child = self.children
        data = []
        for o in obj_child:
            data.append(o.to_dict())
        return data

class Role(db.Model):
    __tablename__ = 't_role'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(32), unique=True, nullable=False)
    describe = db.Column(db.String(64))

    # 与用户的关联
    users = db.relationship('User', backref='role')
    menus = db.relationship('Menu', secondary=t_m_r)

    def to_dict(self):
        return {
            'id': self.id,
            'name': self.name,
            'describe': self.describe,
            'menu': self.get_menu_list()
        }
    
    def get_menu_list(self):
        menu_list = []
        for m in self.menus:
            if m.level == 1:
                m_dict = m.to_dict()
                m_dict['children'] = m.get_child_list()
                menu_list.append(m_dict)
        return menu_list

图片.png

老师,这边关联数据库报了这个警告,每次查询role表跟menu表时都会

Python 全系列/第十阶段:Flask百战电商后台项目/Flask百战电商后台项目 19804楼
JAVA 全系列/第五阶段:JavaWeb开发/Ajax技术详解(旧) 19809楼

image.png

JAVA 全系列/第三阶段:数据库编程/JDBC技术 19810楼
JAVA 全系列/第五阶段:JavaWeb开发/Web实战案例 19812楼
JAVA 全系列/(隐藏)第二十三阶段:数字货币交易所项目/IASS基础服务的搭建和开发 19813楼
Python 全系列/第一阶段:Python入门/序列 19814楼
JAVA 全系列/第三阶段:数据库编程/JDBC技术 19815楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637