1月22日学习内容整理:权限系统之模版语言中的自定义方法
一、如何在模版文件中调用我们在py文件中定义的方法
1、在任意一个已注册的app文件中,创建一个名字为templatetags的文件目录,注意名字必须为templatetags
已注册的app文件意思是在配置文件中已配置过的app文件
2、在templatetags目录下创建任意py文件
3、在py文件中创建一个类名为Library的对象,对象名为register,必须是这个名字
from django.template import Library register = Library()
4、两种装饰器
(1)@register.simple_tag
被这个装饰的函数返回什么页面就填充什么
(2)@register.inclusion_tag('某个模版文件名')
被这个装饰的函数,会返回一个字典,return {'menu_result':menu_result}类似于这样的,这个返回值就会传到括号里设置的模版文件中进行渲染
注意这个模版文件名必须是在app文件中的templates文件下的第一级目录,若不是的话模版文件就要加上它所在的文件名
注意一下函数的返回值我们尽量写成上述那种字典的形式
(2'''''')如果想对渲染出来的效果加样式的话可以用
<link rel='stylesheet' href='/static/rbac/rbac.css' />
<script src='/static/rbac/rbac.js' />
但推荐是放到母板中
5、模版文件中如何调用函数
起始位置:{% load templatetags目录下的py文件名 %}(注意母板继承的extends要放在它的上面)
调用函数:{% 函数名 参数1 参数2 ..... %}
注意:这里若是第一种装饰器就会直接渲染成函数的返回值;若是第二种装饰器,这里就会把函数的返回值和模版文件共同渲染出的结果显示出来
补充:
Django查找模版文件静态文件时会优先查找全局目录下的模版和静态文件夹,没有的话就会默认从app文件中去找,顺序是按照配置文件中app的注册顺序,
注意从app文件中找我们不需要在配置文件中设置,这个Django是默认查找的,会默认从app文件中的templates文件中找