>  기사  >  웹 프론트엔드  >  Django+Layui 배경 레이아웃 소개

Django+Layui 배경 레이아웃 소개

尚
앞으로
2019-12-23 17:45:394715검색

Django+Layui 배경 레이아웃 소개

Layui 백엔드 레이아웃:

1. 백엔드 레이아웃의 상단 사이드바

<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" alt="Django+Layui 배경 레이아웃 소개" >
                    {{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+Layui 배경 레이아웃 소개

2. 배경 레이아웃의 사이드바

사이드바는 노드와 하위 노드를 동적으로 로드해야 하므로 먼저 노드와 하위 노드의 모델을 설정해야 합니다. Django의 모델 코드는 다음과 같습니다.

# 节点类
class NavigationProfile(models.Model):
    name=models.CharField(max_length=20,verbose_name=&#39;节点名称&#39;)
    url=models.CharField(max_length=50,verbose_name=&#39;链接地址&#39;)
    iconCls=models.CharField(max_length=50,verbose_name=&#39;图标icon&#39;)

    class Meta:
        verbose_name=&#39;节点名称&#39;
        verbose_name_plural=verbose_name

    def __str__(self):
        return self.name

# 子节点类
class NavigationSubProfile(models.Model):
    name=models.CharField(max_length=20,verbose_name=&#39;子节点名称&#39;)
    url=models.CharField(max_length=50,verbose_name=&#39;链接地址&#39;)
    iconCls=models.CharField(max_length=50,verbose_name=&#39;图标icon&#39;)
    parent=models.ForeignKey(NavigationProfile,on_delete=models.CASCADE,verbose_name=&#39;父节点&#39;)

    class Meta:
        verbose_name=&#39;子节点名称&#39;
        verbose_name_plural=verbose_name

    def __str__(self):
        return self.name

Django 뷰의 코드는 다음과 같습니다.

def open_index(request):
    if request.user.is_authenticated == False:
        return HttpResponseRedirect(&#39;/account/login/&#39;)
    else:
        navigation = NavigationProfile.objects.all()
        dict = []

        for nav in navigation:
            dic = {}
            id = nav.id
            dic[&#39;id&#39;] = nav.id
            dic[&#39;text&#39;] = nav.name
            dic[&#39;url&#39;] = nav.url
            dic[&#39;iconCls&#39;] = nav.iconCls
            dic[&#39;nid&#39;] = 0
            sub_navigation = NavigationSubProfile.objects.filter(parent_id=id)

            sub_dict = []
            for sub_nav in sub_navigation:
                sub_dic = {}
                sub_dic[&#39;id&#39;] = sub_nav.id
                sub_dic[&#39;text&#39;] = sub_nav.name
                sub_dic[&#39;url&#39;] = sub_nav.url
                sub_dic[&#39;iconCls&#39;] = sub_nav.iconCls
                sub_dic[&#39;nid&#39;] = sub_nav.parent_id
                sub_dict.append(sub_dic)

            dic["children"] = sub_dict
            dict.append(dic)30         return render(request,&#39;index.html&#39;,{&#39;dict&#39;:dict})

Django URL 코드는 다음과 같습니다.

 urlpatterns = [
     path(&#39;get-navigationProfile/&#39;,views.get_navigationProfile,name=&#39;get_navigationProfile&#39;),
 ]

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>

최종 렌더링

Django+Layui 배경 레이아웃 소개

레이유에 대한 더 많은 지식을 알고 싶으시면 layui 사용법 튜토리얼 칼럼을 주목해주세요.

위 내용은 Django+Layui 배경 레이아웃 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제