三级菜单渲染

来源:互联网 发布:dota2战队数据 编辑:程序博客网 时间:2024/05/29 15:45
def menu_data(request):    # 主菜单    menus = []    # 二级菜单    second_level_menu = []    # 三级菜单    three_level_menu = []    # 方法    k = -1  # ****    for i in get_menu:        get_second_level_menu = MenuManager.get_second_level_menu(i.id)        menus.append(i)        k += 1        second_level_menu.append(get_second_level_menu)        three_level_menu.append([])  # ****        for j in second_level_menu[k]:            get_three_level_menu = MenuManager.get_three_level_menu(j.id)            three_level_menu[k].append(get_three_level_menu)    print menus    print second_level_menu    print three_level_menu------------------------------------------------打印结果:[<Menu: 主菜单1>, <Menu: 主菜单2>, <Menu: 主菜单3>][[<Menu:二级菜单1_1>,<Menu:二级菜单1_2>,<Menu:二级菜单1_3>],[<Menu:二级菜单2_1>,<Menu:二级菜单2_2>],[<Menu:二级菜单3_1>,<Menu:二级菜单3_2>]][[[<Menu:三级菜单1_1_1>,<Menu:三级菜单1_1_2>],[<Menu:三极菜单1_2_1>,<Menu:三极菜单1_2_2>],[<Menu:三极菜单1_3_1>]],[[<Menu:三极菜单2_1_1>,<Menu:三极菜单2_1_2>],[<Menu:三极菜单2_2_1>,<Menu:三极菜单2_2_2>]],[[<Menu:三极菜单3_1_1>,<Menu:三极菜单3_1_2>],[<Menu:三极菜单3_2_1>,<Menu:三极菜单3_2_2]]]

这里写图片描述

以上是从数据库中取出的数据,现在需要html渲染

<li class="grid" style="display: inline;"><a class="color1" href="index.html">首页</a></li><li class="active grid" style="display: inline;"><a class="color2" href="#">主菜单1</a><div class="megapanel" style="display: none; opacity: 1;"><div class="row"><div class="col1"><div class="h_nav"><h4>二级菜单1_1</h4><ul><li><a href="women.html">三极菜单1_1_1</a></li><li><a href="women.html">三极菜单1_1_2</a></li><li><a href="women.html">三极菜单1_1_3</a></li></ul></div></div><div class="col1"><div class="h_nav"><h4>二极菜单1_2</h4><ul><li><a href="women.html">三极菜单1_2_1</a></li><li><a href="women.html">三极菜单1_2_2</a></li><li><a href="women.html">三极菜单1_2_3</a></li></ul></div></div><div class="col1"><div class="h_nav"><h4>二极菜单1_3</h4><ul><li><a href="women.html">三极菜单1_3_1</a></li><li><a href="women.html">三极菜单1_3_2</a></li></ul></div></div></div><div class="row"><div class="col2"></div><div class="col1"></div><div class="col1"></div><div class="col1"></div><div class="col1"></div></div></div></li>

渲染方法

a = -1    f_m_t = ''    for i in menus:        f_m_t += '<li class="active grid" style="display: inline;"><a class="color2" href="#">'+str(i)+'</a><div class="megapanel" style="display: none; opacity: 1;"><div class="row">'        a += 1        b = -1        s_m_h = ''        for j in second_level_menu[a]:            s_m_h += '<div class="col1"> <div class="h_nav"> <h4>'+str(j)+'</h4> <ul>'            b += 1            t_m_h = ''            for k in three_level_menu[a][b]:                t_m_h += '<li><a href="women.html">'+str(k)+'</a></li>'            t_m_h += '</ul> </div> </div>'            s_m_h += t_m_h        s_m_h += '</div>'        f_m_t += s_m_h    html = f_m_t
1 0