我是一個django初學者,所以我想了解上下文和上下文處理器的概念。Django中的上下文是什麼?
- 什麼是上下文,爲什麼使用它?
- 上下文是您需要使用的值,以便在模板中使用?
- 上下文和上下文處理器是否一樣?
我會婉轉你的迴應。提前致謝!
我是一個django初學者,所以我想了解上下文和上下文處理器的概念。Django中的上下文是什麼?
我會婉轉你的迴應。提前致謝!
當您使用Django模板時,它會被編譯一次(並且只會被編譯一次)並存儲以供將來使用,作爲優化。模板可以在雙花括號中包含變量名稱,例如 {{myvar1}},{{myvar2}}。
上下文是一個字典,其變量名稱作爲「鍵」,它們的值作爲「值」。因此,如果上述模板的上下文如下所示:{myvar1:101,myvar2:102},當您將此上下文傳遞給模板渲染方法時,{{myvar1}}將被101和{{myvar2}}替換爲102在您的模板中。這是一個簡單的例子,但是真正的Context對象是模板被渲染的「上下文」。
至於ContextProcessor,這是一個稍微先進的概念。您可以在settings.py文件中列出幾個接收HttpRequest對象並返回字典(類似於上面的Context對象)的Context Processors。上下文處理器返回的字典(上下文)被合併到你(用戶)由Django傳入的上下文中。
上下文處理器的一個用例是當你總想在你的模板中插入某些變量時(例如用戶的位置可能是候選者)。您可以簡單地爲它編寫一個上下文處理器,並將其添加到settings.py中的TEMPLATE_CONTEXT_PROCESSORS設置中,而不用編寫代碼將其插入到每個視圖中。
希望這是有道理的。感謝您參加課程!
-sid
非常感謝Sid !.我非常感謝您的幫助和時間!你澄清了我對此的懷疑。我參加了你的課,因爲我正在爲我的想法建立一個MVP。所以我通過閱讀「Django的兩個勺子」來完成它並超越了它,但是我仍然有許多概念我還是不太明白。在下面的答案中,我擴展了我正在嘗試使用此特定應用程序的內容。 –
Context
在the official documentation中描述得相當好。總之:
在每天的日常使用,主要是間接的,因爲helper functions構建Context
你
見1如果你使用the low-level api
:你只需要它不,context processor是一個函數,它接受一個請求並返回一個變量字典,然後在所有使用RequestContext
呈現的模板中都可用,例如:
def get_stuff_from_session(request):
return {'stuff': request.session['stuff']}
甲上下文是變量名 - >變量值,該值被傳遞給模板映射。
語境處理器讓您指定的數字的,它們會在自動每個方面設置變量 - 您無需指定每個變量渲染()調用。
我建議你從優秀[Django的教程]啓動(https://docs.djangoproject.com/en/dev/intro/tutorial01/),它提供了基本的概念,比如你問的那些對於。 –