web站点的上下文对于新手可能有些陌生和晦涩,这个东西有什么用?上下文就是一个变量或是函数,在整个web站点中都可以调用并获取其中定义的值。在Django中,全局上下文(Global Context)是指在每个视图中都可用的全局变量或函数,可以在模板中直接访问。Django提供了一种机制来定义全局上下文,使得这些变量或函数在所有的模板中都可以使用。
要定义全局上下文,可以使用Django的上下文处理器(context processor)。上下文处理器是一个Python函数,它接收一个HttpRequest对象作为参数,并返回一个包含上下文变量的字典。这个字典将会被添加到每个模板的上下文中。
def my_global_context(request): return { 'site_name': 'suiyan_blog' }
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ ... 'myapp.context_processors.my_global_context', ... ], }, }, ]
<p>{{ my_variable }}</p>
Django的上下文可以用来定义类似博客每个页面上的站点和站长资料、分类、标签集合、底部版权信息等,这样在整个web的站点访问任何地方都可以调用,极大的方便了开发者编写开发web站点的对应功能。