Layui后台布局:
一、后台布局之顶边栏
<div class="layui-header"> <div class="layui-logo">layui 后台布局</div> <!-- 头部区域(可配合layui已有的水平导航) --> <ul class="layui-nav layui-layout-left"> <li class="layui-nav-item"><a href="">控制台</a></li> <li class="layui-nav-item"><a href="">商品管理</a></li> <li class="layui-nav-item"><a href="">用户</a></li> <li class="layui-nav-item"> <a href="javascript:;">其它系统</a> <dl class="layui-nav-child"> <dd><a href="">邮件管理</a></dd> <dd><a href="">消息管理</a></dd> <dd><a href="">授权管理</a></dd> </dl> </li> </ul> <ul class="layui-nav layui-layout-right"> <li class="layui-nav-item"> <a href="javascript:;"> <img src="http://t.cn/RCzsdCq" class="layui-nav-img"> {{request.user.username}} </a> <dl class="layui-nav-child"> <dd><a href="">基本资料</a></dd> <dd><a href="">安全设置</a></dd> </dl> </li> <li class="layui-nav-item"><a href="">退了</a></li> </ul> </div>
代码中橙色背景的一行为Django中传入的当前登录用户的用户名。
最终效果如下:
二、后台布局之侧边栏
侧边栏由于需要动态加载节点和子节点,所以需要先在Django中建立节点和子节点的model,model代码如下:
# 节点类 class NavigationProfile(models.Model): name=models.CharField(max_length=20,verbose_name='节点名称') url=models.CharField(max_length=50,verbose_name='链接地址') iconCls=models.CharField(max_length=50,verbose_name='图标icon') class Meta: verbose_name='节点名称' verbose_name_plural=verbose_name def __str__(self): return self.name # 子节点类 class NavigationSubProfile(models.Model): name=models.CharField(max_length=20,verbose_name='子节点名称') url=models.CharField(max_length=50,verbose_name='链接地址') iconCls=models.CharField(max_length=50,verbose_name='图标icon') parent=models.ForeignKey(NavigationProfile,on_delete=models.CASCADE,verbose_name='父节点') class Meta: verbose_name='子节点名称' verbose_name_plural=verbose_name def __str__(self): return self.name
在Django views中代码如下:
def open_index(request): if request.user.is_authenticated == False: return HttpResponseRedirect('/account/login/') else: navigation = NavigationProfile.objects.all() dict = [] for nav in navigation: dic = {} id = nav.id dic['id'] = nav.id dic['text'] = nav.name dic['url'] = nav.url dic['iconCls'] = nav.iconCls dic['nid'] = 0 sub_navigation = NavigationSubProfile.objects.filter(parent_id=id) sub_dict = [] for sub_nav in sub_navigation: sub_dic = {} sub_dic['id'] = sub_nav.id sub_dic['text'] = sub_nav.name sub_dic['url'] = sub_nav.url sub_dic['iconCls'] = sub_nav.iconCls sub_dic['nid'] = sub_nav.parent_id sub_dict.append(sub_dic) dic["children"] = sub_dict dict.append(dic)30 return render(request,'index.html',{'dict':dict})
Django urls代码如下:
urlpatterns = [ path('get-navigationProfile/',views.get_navigationProfile,name='get_navigationProfile'), ]
Html侧边栏代码如下:
<div class="layui-side layui-bg-black"> <div class="layui-side-scroll"> <!-- 左侧导航区域(可配合layui已有的垂直导航) --> <ul class="layui-nav layui-nav-tree" lay-filter="test"> {% for dic in dict %} <li class="layui-nav-item"> <a class="" href="javascript:;">{{ dic.text }}</a> <dl class="layui-nav-child"> {% for child in dic.children %} <dd><a href="javascript:;" data-id="{{ child.id }}" data-url="{{ child.url }}">{{ child.text }}</a></dd> {% endfor %} </dl> </li> {% endfor %} </ul> </div> </div>
最终效果图
更多layui知识请关注layui使用教程栏目。
以上是Django+Layui后台布局介绍的详细内容。更多信息请关注PHP中文网其他相关文章!
声明
本文转载于:博客园。如有侵权,请联系admin@php.cn删除

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章
刺客信条阴影:贝壳谜语解决方案
3 周前ByDDD
Windows 11 KB5054979中的新功能以及如何解决更新问题
2 周前ByDDD
在哪里可以找到原子中的起重机控制钥匙卡
3 周前ByDDD
<🎜>:死铁路 - 如何完成所有挑战
4 周前ByDDD
Atomfall指南:项目位置,任务指南和技巧
1 个月前ByDDD

热工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

Atom编辑器mac版下载
最流行的的开源编辑器

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!