django通過添加session來保存公共變量


有時候我們需要所有頁面都使用同一個變量,比如用戶登錄信息。那不可能render每一個頁面時都去傳遞一個變量,會非常麻煩
而用session可以解決這個問題
 
web的session可以通過request.session返回,返回結果是一個字典

第一步:通過視圖修改session中自定義key的內容

比如我增加一個username字段
 
在webManage下新建一個叫做context_processor的文件,然后添加下面的內容
def username(request):
    return {'username': request.session.get('username', "Guest")}
 
該方法返回了請求的session中的username值,如果沒有賦值Guest
如果想直接給他賦值,直接用request.session[“username"]=xxx即可

第二步:修改settings.py文件,增加剛創建的方法

在TEMPLATES->OPTIONS->context_processors下增加剛剛添加的方法(頁面.方法)
 
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                'webManage.context_processor.username'
            ],
        },
    },
]
 

第三步:調用創建的方法 

views視圖中直接使用username就可以獲得定義的username方法的返回值
在html中使用{{ username }}調用該內容
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM