如何在Django模板中注入全局变量
生活随笔
收集整理的這篇文章主要介紹了
如何在Django模板中注入全局变量
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
????我們在做一些網站項目的時候,可能會遇到需要把某個全局變量注入到所有頁面的情況,比如我們做一個在線商城,那么可能需要將用戶的資料:比如用戶的賬號、用戶的姓名等注入到每個頁面里面。
????但是如果用常規的方法,也就是在每個views方法中通過render_to_response方法注入用戶數據的話,這樣就會做非常多的重復工作,就像下面這樣:
def?views_meth1(request):????return?render_to_response('template_1.html',?{'user':?request.user})? def?views_meth2(request):????return?render_to_response('template_2.html',?{'user':?request.user})? def?views_meth3(request):????return?render_to_response('template_3.html',?{'user':?request.user})? #?...剩下的N個方法????這在需要傳入的變量比較簡單、數量較少的時候還行,一旦需要注入的變量多一些,或是需要經過一些額外的計算才能生成的時候,那就麻煩大了。所以如何避免這種repeat yourself的2B模式呢?我們可以選擇如下的一種模式:
?
????在每次創建新的django項目的時候,一般來說我們都會在根目錄中創建一個類似名為utils.py的工具module,在這個module中,我們可以通過定義一個自己的render方法,來為每次模板的渲染注入指定的全局變量:
#?in?utils.py: def?mp_render(request,?template,?context={}):context['user']?=?request.user?????return?render_to_response(template,?context)? #?in?views.py:from?utils?import?mp_render def?views_meth1(request):????return?mp_render(request,?'template_1.html')? def?views_meth2(request):????return?mp_render(request,?'template_2.html')? def?views_meth3(request):????return?mp_render(request,?'template_3.html')轉載于:https://blog.51cto.com/zhangxz/1577456
總結
以上是生活随笔為你收集整理的如何在Django模板中注入全局变量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Excel闪退
- 下一篇: 修改Fiddler实用插件JsonVie