Django session 處理範例教學

首頁 >> 結帳英文 >> Django session 處理範例教學

之前提到過 Django cookie 處理

cookie 的缺點也是很明顯的,

故只能用來存取一些比較不重要的資料,

現在就來教大家另一種作法:

Django session 處理範例教學

與 cookie 相同,

session 也是使用 dict 方式存取,

預設有效時間為兩周,

可透過

request.session.set_expiry()

修改 session 過期的時間,

在使用 session 之前,

先在 settings.py 找到底下兩個 item ,

通常預設是打開的,

要使用 session 的話要有這兩個 item。

同樣在 Chrome 瀏覽器中按 F12 ,

在 Storage 的 Cookies 中可找到包含 cookie 與 session ,

可看到 cookie 存放的是明碼的資訊,

此處範例的 cookie 為 19

但 session 僅能看到 session id

承襲之前的範例:

def check_session(request):
    if 'stmp_counter' not in request.session:
        tmpcounter = 1        
msg = 'create counter'    
    else:
        tmpcounter = int(request.session['stmp_counter'])
        tmpcounter = tmpcounter + 1       
        msg = 'counter = ' + str(tmpcounter)


    res = HttpResponse(msg)
    request.session['stmp_counter'] = tmpcounter
    request.session.set_expiry(3600)
    return res


def del_session(request):
    if 'stmp_counter' in request.session:
        msg = 'del counter, value = ' + str(request.session['stmp_counter'])
        res = HttpResponse(msg)
        del request.session['stmp_counter']
        return res
    else:
        return HttpResponse('No session')

透過 check_session 紀錄使用者瀏覽網站的次數,

如果 session 存在就將其加 1 ,

不存在的話,

就設定 session 為 1 ,

request.session.set_expiry(3600)

則是設定過期時間為一個小時。


透過 del 刪除特定的 session,

僅需使用

del requestion['session key']

若 session 不存在,

就顯示 No session 。

不管是使用有加密的 session 或者明碼存放在使用者電腦的 cookie ,

各有利弊,

只需要選擇適合的使用情境即可。

這裡是不及格研究室

we are here , we are coding 



================================
分享與讚美,是我們繼續打拼的原動力.
若文章對您有幫助,望請不吝按讚或分享.
或者對影片有興趣可以訂閱頻道接收通知
================================
YouTube 頻道
FB 粉絲專頁
================================

guangyaw

重點主題: 程式設計: Python , Django,Android 工具與軟體: Open edX,Linux工具,Blender教學 分享各地美景與產品使用心得,遊戲實況,甚至影視戲劇等, 您的訂閱就是頻道成長的原動力。 YouTube 頻道: https://youtube.com/xyawli

You may also like...

發表迴響