[英]How can I share a dict between two different http requests
Django應用程序將數據從文件加載到Python字典,進行處理並將其作為http響應發送。 現在說,在Web服務器上收到了n個請求,那么這個Django應用將運行n
次,並將數據從文件加載到Python dict的次數為n
次。 我想知道是否可以在可以提供n
http響應的同時,僅將一次數據加載到dict。
用於問題情況的示例view.py
文件可以如下所示:
from django.http import HttpResponse
from django.http import HttpRequest
def hello(request):
data = open("abc").readlines()
return HttpResponse(data[0])
將字典綁定到全局名稱將使它在Django項目運行時一直存在。 請注意,每個Django進程(某些WSGI容器,例如mod_wsgi,可以為一個應用程序運行多個進程)將具有自己獨立的字典副本。
這是Django中間件的工作 。 將其添加到您的設置中,它將在您的請求中始終存在。 這是比持久性更好的選擇,並且絕對比使用全局對象好得多。
中間件是掛鈎Django請求/響應處理的框架。 這是一個輕量級的“插件”系統,用於全局更改Django的輸入和/或輸出。 每個中間件組件負責執行某些特定功能。 例如,Django包含一個中間件組件XViewMiddleware,該組件向每個HEAD請求的響應添加一個“ X-View” HTTP標頭。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.