首先說說什么叫全局變量,我們經常在html中使用{{ var }}這樣的模板變量,這些變量是我們在視圖函數中
提前定義好的變量,通過render()等方法傳遞到模板中。
但是,還有一類變量,我們並沒有在views.py中定義,也能在html中使用該變量,像這樣的變量,就叫做
全局變量。
下面來看看如何定義全局變量:
思路:
新建contexts.py文件-->修改settings.py文件-->在html中使用。
1.首先我們需要在項目根目錄下的同名目錄建立contexts.py文件
1 #!/bin/bash/python 2 # -*- coding: utf-8 -*- 3 # 全局變量 4 # 5 from django.conf import settings 6 7 def lang(request): 8 return {'lang': settings.LANGUAGE_CODE}
2.修改settings.py中的全局變量templates
61 'context_processors': [ 62 'django.template.context_processors.debug', 63 'django.template.context_processors.request', 64 'django.contrib.auth.context_processors.auth', 65 'django.contrib.messages.context_processors.messages', 66 'blog.contexts.lang', 67 ],
上述中'blog.contexts.lang'即是我們定義的方法
3.在模板中使用
<h3>全局變量lang:{{ lang }}</h3> <h3>是否登錄:{{request.user.is_authenticated}}</h3>
request.user.is_authenticated為系統自帶的全局變量。
tips:
在views.py中必須使用render()或其他能夠定向到模板的方法,像HttpResponse()就不行!
附:頁面圖