django 模板语言:templatetags,返回HTML代码片段

templatetags:返回一个HTML代码片段

使用场景:部分HTML片段被多个不用的页面使用,例如菜单栏,合作链接等,它们需要在各自的视图函数中调用相同的数据。

使用方法:

  一、创建templatetags文件夹

  二、创建py文件,实现HTML页面调用的函数。函数接收参数在HTML页面调用时传参,返回值为装饰器中HTML页面需要渲染的数据,

    app/service/templatetags/menu.py

from django import template
register = template.Library()

@register.inclusion_tag('men_permission.html')
def get_menu(request):
    menu_permission_list = request.session.get('menu_permission_list')

    return {"menu_permission_list":menu_permission_list}

  三、创建单独存放需要返回的HTML代码片段页面,即函数装饰器中的HTML

    app/templates/men_permission.html

<div class="list-group">
    {% for permission in menu_permission_list %}
        <a href="{{ permission.permission__urls}}" class="list-group-item">{{ permission.permission__group__title }}</a>
    {% endfor %}
</div>

  四、在需要展示这段HTML片段的页面中调用,也可以写在母版中,因为每个页面都是固定展示的

    app/templates/show_user.html

{% load menu %}  // 先调用py文件
            <div class="left-menu ">
                {#                <div class="list-group">#}
                {#                    {% for permission in menu_permission_list %}#}
                {#                        <a href="{{ permission.permission__urls}}" class="list-group-item">{{ permission.permission__group__title }}</a>#}
                {#                    {% endfor %}#}
                {#                </div>#}
                {% get_menu request %}  //使用函数并传参

            </div>

 

posted @ 2020-03-03 15:54  aikell  阅读(498)  评论(0编辑  收藏  举报