美文网首页
django 模版标签和变量使用方法

django 模版标签和变量使用方法

作者: 天空蓝雨 | 来源:发表于2019-12-06 19:49 被阅读0次

关于模版变量参考
https://www.cnblogs.com/simon-xm/p/4022194.html

settings.py 和 global_settings.py 的关系??
from django.conf import global_settings
global_settings 是settings .py 的妈

模板变量可以在 settings.py 中全局指定
比如在 app应用下 ,新建 xx.py 里面写入函数

def django_verison(request):
    return {'django_verison':'2.1'}

然后在 TEMPLATES (dj 2版本是在这,早起版本请查看官方文档)添加你的全局变量的路径:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                'apps.utils.contexts.django_verison',
            ],
        },
    },
]

然后函数返回的字典的key 就可以在模板里面全局使用了

span>{{ django_verison }}</span>

为什么 模版里面可以直接用 user 就是应为 对应的'django.contrib.auth.context_processors.auth',
函数内容如下:

def auth(request):
    """
    Return context variables required by apps that use Django's authentication
    system.

    If there is no 'user' attribute in the request, use AnonymousUser (from
    django.contrib.auth).
    """
    if hasattr(request, 'user'):
        user = request.user
    else:
        from django.contrib.auth.models import AnonymousUser
        user = AnonymousUser()

    return {
        'user': user,
        'perms': PermWrapper(user),
    }

这就比较清晰了

相关文章

网友评论

      本文标题:django 模版标签和变量使用方法

      本文链接:https://www.haomeiwen.com/subject/kewpbctx.html