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筆記
- OS學習筆記三:處理器排程筆記
- 筆記本處理器天梯圖2021最新版 2021筆記本處理器效能排行榜筆記
- Django 筆記Django筆記
- Django筆記Django筆記
- java異常處理筆記Java筆記
- Django筆記十之values_list指定欄位取值及distinct去重處理Django筆記
- 機器學習筆記---資料預處理機器學習筆記
- OpenCV3影像處理筆記OpenCV筆記
- React學習筆記-事件處理React筆記事件
- Nuxt Kit 中的上下文處理UX
- 聯想筆記本首次採用非英特爾處理器筆記
- Dotnetty學習筆記——自定義初始化處理器Netty筆記
- django基礎筆記Django筆記
- django學習筆記Django筆記
- 記個格式化時間處理筆記筆記
- 筆記本cpu排行天梯圖最新版 最新筆記本cpu處理器排行榜筆記
- JSP筆記-XML 資料處理JS筆記XML
- Go 的錯誤處理策略 筆記Go筆記
- 【影像處理筆記】小波變換筆記
- Python筆記(五)——檔案處理Python筆記
- Vue學習筆記之事件處理Vue筆記事件
- 【筆記】jQuery原始碼(文件處理3)筆記jQuery原始碼
- oracle壞塊模擬處理(筆記)Oracle筆記
- 異常處理-PHP手冊筆記PHP筆記
- django專案筆記1Django筆記
- Django 筆記 - 特殊運算子Django筆記
- 【Django】DRF自定義異常處理Django
- Flutter學習筆記(32)--PointerEvent事件處理Flutter筆記事件
- swoft 學習筆記之異常處理筆記
- 《Python資料處理》讀書筆記Python筆記
- Python檔案處理-專題筆記Python筆記
- STREAMS筆記(3) REDO清理 & 異常處理筆記
- vue學習筆記3-事件處理Vue筆記事件
- 記筆記:C# Socket客戶端監聽伺服器端處理方案【同步】筆記C#客戶端伺服器
- c primer plue 第 16 章 C前處理器和C庫 筆記筆記
- Django筆記四十一之Django中使用esDjango筆記
- Django Book 學習筆記(上)Django筆記