美文网首页
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