本文主要总结了在Django模板中使用自定义全局变量的方法。

首先说说什么叫全局变量,我们经常在html中使用{{ var }}这样的模板变量,这些变量是我们在视图函数中提前定义好的变量,通过render()等方法传递到模板中, 但是,还有一类变量,我们并没有在views.py中定义,也能在html中使用该变量,像这样的变量,就叫做【模版的】全局变量。

一、在项目根目录下的同名目录建立contexts.py文件

# -*- coding: utf-8 -*-
from django.conf import settings
def lang(request):
	return {'lang': settings.LANGUAGE_CODE}

二、修改settings.py中的全局变量templates

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',
                # 'App.filename.varname',
                'spider.contexts.lang',
            ],
        },
    },
]

三、在模板中使用该变量

 <h3>全局变量lang:{{ lang }}</h3>
 <h3>是否登录:{{request.user.is_authenticated}}</h3>

以上就是在Django中使用全局自定义变量的方法。