Django中cookie和session的存、取、刪除

Django中:
cookie的存:數據庫

response = HttpResponse('登錄成功')     #改爲重定向等均可以
response.set_cookie('username',username)
#response.set_signed_cookie('username',username,salt='asdasd') #帶簽名的cookie(加鹽)
response.set_cookie('password',password)
return response

cookie的取:django

username = request.COOKIES.get('username')
#username = request.get_signed_cookie('username',salt='asdasd') #獲取帶簽名的cookie(鹽要相同,否則拿不到)
password = request.COOKIES.get('password')

cookie的刪除:瀏覽器

response = HttpResponse('清除成功')      #改爲重定向等均可以
response.delete_cookie('username')
response.delete_cookie('password')
return response

 PS:不設置過時時間的話,默認關閉瀏覽器就失效緩存

session的存:服務器

request.session['username'] = username
#上面這一句代碼完成了如下事情:
#一、生成隨機字符串
#二、將隨機字符串寫到用戶瀏覽器cookie
#三、將隨機字符串保存到服務器session
#四、在服務器隨機字符串對應的字典中設置相關內容 request.session[
'password'] = password return HttpResponse('登錄成功')

session的取:cookie

username = request.session.get('username')
#username = request.session['username'] #兩種方式均可以取,可是這種若是沒取到會報錯 password
= request.session.get('password')

session的刪除:session

request.session.flush()    #刪除全部session
#del request.session['username'] #刪除key爲username的session
return HttpResponse('清除成功')

 PS:在django中,session默認的過時時間是兩週ide

數據庫:
SESSION_ENGINE = 'django.contrib.sessions.backends.db'   # 引擎(默認)
緩存:
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'  # 引擎
SESSION_CACHE_ALIAS = 'default'                            # 使用的緩存別名(默認內存緩存,也能夠是memcache),此處別名依賴緩存的設置
文件:
SESSION_ENGINE = 'django.contrib.sessions.backends.file'    # 引擎
SESSION_FILE_PATH = None                                    # 緩存文件路徑,若是爲None,則使用tempfile模塊獲取一個臨時地址tempfile.gettempdir()                                                            # 如:/var/folders/d3/j9tj0gz93dg06bmwxmhh6_xm0000gn/T
緩存+數據庫:
SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'        # 引擎
session引擎配置
    - 配置文件中設置默認操做(通用配置):
        SESSION_COOKIE_NAME = "sessionid"                       # Session的cookie保存在瀏覽器上時的key,即:sessionid=隨機字符串(默認)
        SESSION_COOKIE_PATH = "/"                               # Session的cookie保存的路徑(默認)
        SESSION_COOKIE_DOMAIN = None                             # Session的cookie保存的域名(默認)
        SESSION_COOKIE_SECURE = False                            # 是否Https傳輸cookie(默認)
        SESSION_COOKIE_HTTPONLY = True                           # 是否Session的cookie只支持http傳輸(默認)
        SESSION_COOKIE_AGE = 1209600                             # Session的cookie失效日期(2周)(默認)
        SESSION_EXPIRE_AT_BROWSER_CLOSE = False                  # 是否關閉瀏覽器使得Session過時(默認)
        SESSION_SAVE_EVERY_REQUEST = False                       # 是否每次請求都保存Session,默認修改以後才保存(默認)
session在settings.py裏面的一些默認配置
相關文章
相關標籤/搜索