簡體   English   中英

如何在兩個不同的http請求之間共享字典

[英]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,可以為一個應用程序運行多個進程)將具有自己獨立的字典副本。

如果數據與用戶相關,則可以使用djanog的會話框架在請求之間保留數據。 如果需要在眾多用戶之間共享數據,則可以使用cache

這是Django中間件的工作 將其添加到您的設置中,它將在您的請求中始終存在。 這是比持久性更好的選擇,並且絕對比使用全局對象好得多。

中間件是掛鈎Django請求/響應處理的框架。 這是一個輕量級的“插件”系統,用於全局更改Django的輸入和/或輸出。 每個中間件組件負責執行某些特定功能。 例如,Django包含一個中間件組件XViewMiddleware,該組件向每個HEAD請求的響應添加一個“ X-View” HTTP標頭。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM