首页 > 编程语言 > 详细

layuimini父子菜单-python实现

时间:2021-05-05 12:05:35      阅读:20      评论:0      收藏:0      [点我收藏+]

现在项目使用了laymini的后台框架,非常不错,美中不足,没有构建菜单的python示例,遂自己写了一个,供大家参考:

数据库表结构

CREATE TABLE `system_menu` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT ID,
  `pid` int(11) unsigned NOT NULL DEFAULT 0 COMMENT 父ID,
  `title` varchar(100) NOT NULL DEFAULT ‘‘ COMMENT 名称,
  `icon` varchar(100) NOT NULL DEFAULT ‘‘ COMMENT 菜单图标,
  `href` varchar(100) NOT NULL DEFAULT ‘‘ COMMENT 链接,
  `target` varchar(20) NOT NULL DEFAULT _self COMMENT 链接打开方式,
  `sort` int(11) DEFAULT 0 COMMENT 菜单排序,
  `status` tinyint(1) unsigned NOT NULL DEFAULT 1 COMMENT 状态(0:禁用,1:启用),
  `remark` varchar(255) DEFAULT NULL COMMENT 备注信息,
  `create_at` timestamp NULL DEFAULT NULL COMMENT 创建时间,
  `update_at` timestamp NULL DEFAULT NULL COMMENT 更新时间,
  `delete_at` timestamp NULL DEFAULT NULL COMMENT 删除时间,
  PRIMARY KEY (`id`),
  KEY `title` (`title`),
  KEY `href` (`href`)
) ENGINE=InnoDB AUTO_INCREMENT=250 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT=系统菜单表;

python 示例

from flask import jsonify, request, Blueprint, json, make_response
from flask_login import login_required, current_user,login_user,logout_user,utils

from app import common
from app import loginManager

from app.models.systemmenu import SystemMenu

def init_api(app):

    @app.route(/xxx/api/v1.0/menus, methods=[GET]) 
    def getMenu():
        systemMenu = SystemMenu()
        menuList = systemMenu.getByStatus(1)

        if menuList:
            homeinfo={"title":"首页","href":"page/welcome-1.html?t=1"}
            logoinfo={"title":"LAYUI MINI","image":"images/logo.png","href": ""} 

            menuList = buildMenuChild(0, menuList)

# 合成菜单 menuAllList
= dict() menuAllList["homeInfo"] = homeinfo menuAllList["logoInfo"] = logoinfo menuAllList["menuInfo"] = menuList result = make_response(jsonify(menuAllList)) else: result = None return result # 递归创建菜单列表 def buildMenuChild(pid,menulist): treeList = dict() node = [] for item in menulist: if (item.pid == pid): nodetmp = {"title":item.title,"icon":item.icon,"href":item.href,"target":item.target} child = buildMenuChild(item.id,menulist) if (child != {}): nodetmp.update({"child":child}) node.append(nodetmp) treeList = node return treeList

 

layuimini父子菜单-python实现

原文:https://www.cnblogs.com/qpanda/p/14731240.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!