最近需要用python写一个菜单,折腾了两三天才搞定,现在记录在此,需要的朋友可以借鉴一下。
备注:文章引用非可执行完整代码,仅仅摘录了关键部分的代码
环境
数据库:mysql
python:3.6
表结构
CREATE TABLE `tb_menu` (
`id` varchar(32) NOT NULL COMMENT '唯一标识',
`menu_name` varchar(40) DEFAULT NULL COMMENT '菜单名称',
`menu_url` varchar(100) DEFAULT NULL COMMENT '菜单链接',
`type` varchar(1) DEFAULT NULL COMMENT '类型',
`parent` varchar(32) DEFAULT NULL COMMENT '父级目录id',
`del_flag` varchar(1) NOT NULL DEFAULT '0' COMMENT '删除标志 0:不删除 1:已删除',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='菜单表';
Python代码
Menu对象中,有一个子菜单列表的引用“subMenus”,类型为list
核心代码
def set_subMenus(id, menus):
"""
根据传递过来的父菜单id,递归设置各层次父菜单的子菜单列表</