Django 上下文處理器 筆記
上下文處理器是可以返回一些資料,在全域性模板中都可以使用,比如登陸後的使用者資訊,在很多頁面中都需要使用,那麼我們可以放在上下文處理器中,就沒有必要在每個檢視函式中都返回這個物件。
在settings.TEMPLATES.OPTIONS.context_processors中,有許多內建的上下文處理器,這些上下文處理器的作用如下:
1、django.template.context_processors.debug:增加一個debug和sql_queries變數,在模板中可以通過他來檢視一些資料庫查詢
2、django.template.context_processors.request:增加一個request變數,這個request變數也就是檢視函式的第一個引數
3、django.contrib.auth.context_processors.auth:Django有內建的使用者系統,這個上下文處理器會增加一個user物件
4、django.contrib.context_processors.messages:增加一個messages變數
5、django.template.context_processors.static:在模板中可以使用STATIC_URL
6、django.template.context_processors.csrf:在模板中可以使用csrf_token變數來生成一個csrf_token
自定義上下文處理器
有時候我們想要返回自己的資料,那麼這時候我們可以自定義上下文處理器,自定義上下文處理器的步驟如下:
1、你可以根據這個上下文處理器是屬於哪個app,然後在這個app中建立一個檔案專門用來儲存上下文處理器,比如context_processors.py。或者是你也可以專門建立一個Python包,用來儲存所有的上下文處理器
2、在你定義的上下文處理器檔案中,定義一個函式,這個函式只有一個request引數。這個函式中處理完自己的邏輯後,把需要返回給模板的資料,通過字典的形式返回。如果不需要返回任何資料,那麼也必須返回一個空的字典
def frontuser(request):
userid = equest.session.get("userid")
userModel = models.FrontendUser.objects.filter(pk=userid).first()
if userModel:
return {"frontuser":userModel}
else:
return {}
相關文章
- Django筆記三十一之全域性異常處理Django筆記
- 筆記本處理器天梯圖2021最新版 2021筆記本處理器效能排行榜筆記
- 機器學習筆記---資料預處理機器學習筆記
- java異常處理筆記Java筆記
- Django筆記十之values_list指定欄位取值及distinct去重處理Django筆記
- Dotnetty學習筆記——自定義初始化處理器Netty筆記
- Python筆記(五)——檔案處理Python筆記
- JSP筆記-XML 資料處理JS筆記XML
- OpenCV3影像處理筆記OpenCV筆記
- React學習筆記-事件處理React筆記事件
- Nuxt Kit 中的上下文處理UX
- 記個格式化時間處理筆記筆記
- Go 的錯誤處理策略 筆記Go筆記
- Vue學習筆記之事件處理Vue筆記事件
- 【筆記】jQuery原始碼(文件處理3)筆記jQuery原始碼
- 【影像處理筆記】小波變換筆記
- 筆記本cpu排行天梯圖最新版 最新筆記本cpu處理器排行榜筆記
- swoft 學習筆記之異常處理筆記
- Flutter學習筆記(32)--PointerEvent事件處理Flutter筆記事件
- vue學習筆記3-事件處理Vue筆記事件
- 筆記:異常處理之report與render筆記
- c primer plue 第 16 章 C前處理器和C庫 筆記筆記
- 機器學習演算法筆記之6:資料預處理機器學習演算法筆記
- Palabos論壇筆記:關於資料處理器BoxProcessingFunctional3D筆記Function3D
- 【Django】DRF自定義異常處理Django
- 記筆記:C# Socket客戶端監聽伺服器端處理方案【同步】筆記C#客戶端伺服器
- 筆記本cpu天梯圖2021最新版12月 最新筆記本cpu處理器排行榜筆記
- Django 筆記 - 特殊運算子Django筆記
- django專案筆記1Django筆記
- 資料共享-spring batch(9)上下文處理SpringBAT
- 同步上下文SynchronizationContext學習筆記Context筆記
- 【筆記】基於Python的數字影象處理筆記Python
- CSS 小結筆記之文字溢位處理CSS筆記
- OpenCV影像處理學習筆記-Day1OpenCV筆記
- Java中的異常處理(隨堂筆記)Java筆記
- 自然語言處理常用資源筆記分享自然語言處理筆記
- SpringMVC學習筆記10-異常處理SpringMVC筆記
- Django筆記四十二之model使用validator驗證器Django筆記