# view文件

from django.shortcuts import render

from app.models import Menu

# Create your views here.

from django.http import JsonResponse

def index(request):

data = get_menu_tree()

return JsonResponse({"list":data})

# 从数据库获取菜单树

def get_menu_tree():

tree = []

menus = Menu.objects.filter(parent=None)

for menu in menus:

menu_data = {

"label":menu.name,

"children":[]

}

childs = Menu.objects.filter(parent=menu)

if childs:

menu_data["children"] = get_child_menu(childs)

tree.append(menu_data)

return tree

# 递归获取所有的子菜单

def get_child_menu(childs):

children = []

if childs:

for child in childs:

data = {

"label":child.name,

"children":[]

}

_childs = Menu.objects.filter(parent=child)

if _childs:

data["children"].append(get_child_menu(_childs))

children.append(data)

return children

# models.py

from django.db import models

class User(models.Model):

username = models.CharField(max_length=16) #创建一个字段,类型为字符串类型,最大长度为16

password = models.CharField(max_length=32) #创建一个字段,类型为字符串类型,最大长度为32

def __unicode__(self):

return self.username

class Menu(models.Model):

name = models.CharField(max_length=64, verbose_name="菜单名称") # 菜单名称

fullName = models.CharField(max_length=512, null=True, blank=True) # 菜单全称

path = models.CharField(max_length=64, null=True, blank=True) # 映射数据路径

parent = models.ForeignKey("Menu", on_delete=models.DO_NOTHING, null=True, blank=True) # 父节点

datum = models.CharField(max_length=64, null=True, blank=True) # 参考基准

type = models.CharField(max_length=64, null=True, blank=True) # 菜单类型

remark = models.CharField(max_length=64, null=True, blank=True) # 备注

def __unicode__(self):

return self.name

def __str__(self):

return self.name

class Meta():

verbose_name = "菜单"

verbose_name_plural = verbose_name

python菜单设计_python django 数据库树形菜单的设计相关推荐

  1. python建立资料库_python 建立数据库

    书籍:python数据科学傻瓜书 Python for Data Science For Dummies 2nd Edition - 2019 简介 学习Python编程和统计数据的快捷方法 Pyth ...

  2. BOS项目02_02_zTree-通过ajax的获取菜单数据、监听树形菜单的点击事件、读取json文件、Ajax获取数据

    系列文章目录 文章目录 系列文章目录 前言 一.发送ajax网络请求获取菜单数据 二.监听树形菜单的点击事件 总结 前言 一.发送ajax网络请求获取菜单数据 我们现在的数是写死的,那么实际项目中我们 ...

  3. 【毕业设计之python系列】基Django的超市管理系统的设计与实现

    基Django的超市管理系统的设计与实现 摘 要 2023年,大家的日常消费水平也在逐步提升,社会越来越稳定,人们的需求越来越好.现在很多超大型智能超市,给大家的美好生活提供便利.为了更好地管理这些大 ...

  4. python路由编程_Python Django基础二之URL路由系统

    MVC和MTV框架 MVC Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的.松耦合的方式连接在一起,模型负责业务 ...

  5. python bootstrap安装_python + django + bootstrap + uWSGI + nginx 环境搭建

    在了解 uWSGI 之前,我们不妨先了解一下 python http服务器? 要使 Python 写的程序能在 Web 上被访问,还需要搭建一个支持 Python 的 HTTP 服务器,列举几个如 G ...

  6. python 中文查找_python 查找数据库

    django.db.utils.ProgrammingError: 1146 的解决办法 在models中设置完数据库相关的东西后执行命令 python manage.py makemigration ...

  7. python气象数据_python气象数据库

    弹性高性能计算E-HPC的管理控制台提供了整个集群生命周期的软件管理功能,支持多款主流HPC软件.通信库的一键查询.安装与卸载. 软件管理界面 进入E-HPC管理控制台,点击左侧栏的集群标签,进入集群 ...

  8. python调试网页_Python Django shell 调试

    Python Django 调试 >>> class Person(models.Model): ... first_name = models.CharField(max_leng ...

  9. python diango 并发_python - django Model 并发写数据出现重复值

    问 题 view视图代码: @login_required def data(request, page, keyword,strEncode): current_username = request ...

最新文章

  1. ORACLE数据库对比表结构
  2. Java框架JSON-RPC项目demo代码实战 + JAVA WEB配置虚拟目录(转自21天java web开发)
  3. Windows Messenger 5.1 [Download from Microsoft]
  4. Android中多媒体处理【转】
  5. python 多层嵌套 json_python解析多层json操作示例
  6. “爸爸,什么是机器学习呀?”
  7. Dubbo(四)之xml配置方式
  8. laravel 创建自定义的artisan make命令来新建类文件
  9. JS学习总结(7)——对象
  10. python subprocess 非阻塞_python中subprocess.PIPE上的非阻塞读取
  11. Matlab批量读取csv、txt、prn等文件
  12. Debug查看汉字机内码
  13. swarm主网BZZ挖矿:钱包如何添加BZZ合约?如何查钱包余额?
  14. linux 拼音输出繁体_解决rime仓颉拼音反查为繁体的问题
  15. 2018 年计算机语言排行榜,TIOBE:2018年11月编程语言排行榜
  16. node进程cpu 100%问题排查
  17. RuoYi-Vue部署服务器流程
  18. P1053 篝火晚会
  19. S3DIS数据集解析为点云
  20. 化工专业和计算机专业哪个好就业前景,2019化学工程与工艺专业就业前景和就业方向分析...

热门文章

  1. http method
  2. 如何用java语言实现C#中的ref关键字(按引用传递参数)的效果
  3. python报错 TypeError: string indices must be integers
  4. HDU 4893 - Wow! Such Sequence!(线段树)
  5. 理解CSS3中的background-size(对响应性图片等比例缩放)
  6. 重新使用Eclipse建立安卓工程遇到的问题
  7. hiho #1485 : hiho字符串(滑动窗口)
  8. 搜索引擎Solr系列(二): Solr6.2.1 从MySql中导入数据
  9. SQL Serve里你总要去改变的3个配置选项
  10. 转adb Shell root 权限