1. 程式人生 > >django web Cookie 和 Sessions 應用

django web Cookie 和 Sessions 應用

###############################################################

#一、存取Cookies

#   1、設定Cookies
#       response.set_cookie("cookie_key","value")
#   2、獲取Cookies
#       value = request.COOKIES["cookie_key"]
#   3、刪除Cookies
#       response.delete_cookie("cookie_key",path="/",domain=name)
#   4、檢測Cookies
#       if "cookie_name" is request.COOKIES :
#   5、response.set_cookie() 傳遞一些可選的引數 描述
#       引數      預設值       描述
#       max_age  None  cookies的持續有效時間(以秒計),如果設定為 None cookies 在瀏覽器關閉的時候就失效了。
#       expires  None  cookies的過期時間,格式: "Wdy, DD-Mth-YY HH:MM:SS GMT" 如果設定這個引數,
#                           它將覆蓋 max_age 引數。
#       path      "/"     cookie生效的路徑字首,瀏覽器只會把cookie回傳給帶有該路徑的頁面,這樣你可以避免將
#                           cookie傳給站點中的其他的應用。
#                           當你的應用不處於站點頂層的時候,這個引數會非常有用。
#       domain      None    cookie生效的站點。你可用這個引數來構造一個跨站cookie。如, domain=".example.com"
#                           所構造的cookie對下面這些站點都是可讀的: 

www.example.com 、 www2.example.com 和
#                           an.other.sub.domain.example.com 。
#                           如果該引數設定為 None ,cookie只能由設定它的站點讀取。
#       secure      False  如果設定為 True ,瀏覽器將通過HTTPS來回傳cookie。
#二、Cookies規則
#    1、Cookies是以字典方式儲存,(Key—>Value的鍵值對方式儲存),訪問是隻要訪問Session的鍵就可以得到鍵對應的Value
#       如果:value = response.set_cookie("cookie_key","value")
#    2、儲存到客戶端
#       優點:
#           資料存在在客戶端,減輕伺服器端的壓力,提高網站的效能。
#       缺點:
#           1、安全性不高:在客戶端機很容易被檢視或破解使用者回話資訊
##################################################################

複製程式碼
from django.template import Context
from django.http import HttpResponse
from django.http import HttpResponseRedirect
import datetime
def set_user(request,hour=0,name="admin"):

dt = datetime.datetime.now() + datetime.timedelta(hours = int(hour))
html ="設定使用者%s為登入回話,過去時間:%s" % (name,str(dt))
response = HttpResponse(html)
response.set_cookie("
username",name,expires=dt)
return response

def show_user(request):
html = ""
if "username" in request.COOKIES :
name = request.COOKIES["username"]
if name == "admin":
html = "使用者%s 的Cookies 沒有超時" % name
if name == "loker" :
html = "使用者%s 的Cookies 沒有超時" % name
else:
dt = datetime.datetime.now() + datetime.timedelta(hours = int(1))
name ="loker"
html ="使用者的Cookies 已經超時\n設定使用者%s為登入回話,過去時間:%s" % (name,str(dt))
response = HttpResponse(html)

response.set_cookie("username",name,expires=dt)

return response
response = HttpResponse(html)
複製程式碼

#######################################################################################
# 一、開始Sessions功能:      --正常情況下,你無需任何設定就可以使用session功能。如果你刪除或修改過請檢測一下配置
#      1、編輯settings.py中 MIDDLEWARE_CLASSES 配置, 確保 'django.contrib.sessions.middleware.SessionMiddleware'存在,如果沒有則新增。
#      2、編輯settings.py中INSTALLED_APPS 配置,確保'django.contrib.sessions' (如果你是剛開啟這個應用,別忘了執行 manage.py syncdb )
#
#二、怎麼使用:
#     1、設定Sessions值
#           request.session['session_name'] ="admin"
#     2、獲取Sessions值
#           session_name = request.session["session_name"]
#     3、刪除Sessions值
#           del request.session["session_name"]
#     4、檢測是否操作session值
#           if "session_name" is request.session :
#三、sessions規則:
#     1、session是以字典方式儲存,(Key—>Value的鍵值對方式儲存),訪問是隻要訪問Session的鍵就可以得到鍵對應的Value
#       如果:value = request.session["key_name"]
#     2、Session字典中以下劃線開頭的key值是Django內部保留key值。框架只會用很少的幾個下劃線開頭的session變數,
#       除非你知道他們的具體含義,而且願意跟上Django的變化,否則,最好不要用這些下劃線開頭的變數,它們會讓D
#       jango攪亂你的應用。
#    3、不要用一個新物件來替換掉 request.session ,也不要存取其屬性、
#    4、Session儲存在伺服器端,
#      優點:資料儲存相對比較安全,資料交換方便。
#      缺點:如果儲存資料多,訪問量大時,比較消耗伺服器端資源,導致網站整體效能下降。
########################################################################################

複製程式碼
from django.template import Context
from django.http import HttpResponse
#設定Sessions值def set_session(request,name=""):
# if "username" in request.session : # del request.session['user_name'] request.session['user_name'] =name
return HttpResponse("Set a session key:%s value:%s"% ("username",name))

def del_session(request):
if "user_name" in request.session :
del request.session['user_name']
return HttpResponse("Clear an item from the session")
#檢視Sessions值def show_session(request):
html = ""
if "user_name" in request.session :
name = request.session["user_name"]
if name == "admin" :
html = "Django site administration | Get a session value:%s" % (str(name))
elif name=="lhj588":
html = "Django site |Get a session value:%s" % (str(name))
elif not name:
html = "Django site |Get a session value is null"
return HttpResponse(html)
else:
return HttpResponse("Session is null")
#set_session(request,"loker")
複製程式碼

######################################################

# urls.py  配置

#######################################################

複製程式碼
from django.conf.urls.defaults import *
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
(r'^cookies/showuser/$','cook.views.show_user'),
(r'^cookies/setuser/$','cook.views.set_user'),
(r'^session/setuser/(.*)/','cook.views.set_session'),
(r'^session/showuser/$','cook.views.show_session'),
(r'^session/del/$','cook.views.del_session'),
)
複製程式碼

##############################################################
#測試

#############################################################

1、測試Cookies

2、測試Sessions 

相關推薦

django web Cookie Sessions 應用

############################################################### #一、存取Cookies #   1、設定Cookies #       response.set_cookie("cookie_key",

Django基礎學習之Cookie Sessions 應用

ima ges disco ttr 實現 保存 urn 傳遞 nwr 在Django裏面,使用Cookie和Session看起來好像是一樣的,使用的方式都是request.COOKIES[XXX]和request.session[XXX],其中XXX是您想要取得的東西的ke

Djangocookiesession

name resp wrap sign ide 服務端 rgs err response 一、cookie 保存在客戶端瀏覽器上的鍵值對 1.獲取cookie 1 request.COOKIES[‘key‘] 2 request.get_signed_cookie(key

DjangoCookie Session

登錄 been close rip response 獲取cookie default rect dex Django中操作Cookie Cookie 就是保存在瀏覽器端的鍵值對      1. 服務端可以在瀏覽器上設置COOKIE 保存在瀏覽器上的   2. 每次

[py][mx]djangocookiesession操作

即使 turn 瀏覽器 會話 ext 問題 控制 put 實現 這玩意可以實現7天免登錄等功能. session和cookie機制原理和交互過程 交互過程 ① 客戶端訪問,無服務端寫入的Cookie ② 服務端的Cookie寫入瀏覽器 ③ 瀏覽器解析Cookie,保存至瀏覽

DjangoCookieSession的基本配置以及設置

Cookie Session Django中Cookie和Sessi Cookie1、獲取Cookie:request.COOKIES['key'] request.get_signed_cookie(key, default=RAISE_ERROR, salt=''

Djangocookie session

info png end sig expire value 服務 django style 一、 1、cookie的由來!!!     由於HTTP協議是無狀態的,既每一次的請求都是獨立的,他不會因為你之前來過,就記住你,所以每次瀏覽器去訪問服務器的時候,都是一個全新的

djangocookiesession以及內建訊號、快取

cookie和session cookie和session的作用: cookie和session都記錄了客戶端的某種狀態,用來跟蹤使用者訪問網站的整個回話。兩者最大的區別是cookie的資訊是存放在瀏覽器客戶端的,而session是存放在伺服器端的 cookie的基本操作 co

djangocookiesession詳解

cookie和session HTTP被設計為”無

DjangoCookieSession

 在Django裡面,使用Cookie和Session看起來好像是一樣的,使用的方式都是request.COOKIES[XXX]和request.session[XXX],其中XXX是您想要取得的東西的key,但是這兩者的原理和實現方式確是非常的不同。      首先介紹Cookie,只要是HTTP協議,就

servlet-cookiesession應用示例:模擬購物車

思路分析: 1. 根據需求抽象出業務物件 User{ usrename; password; } ShoppingCarItem{ product; num; } ShoppingCar{ List<ShoppingCarItem> } 2. 寫Servlet處

web開發——4.一個完整的web專案應用程式的建立以及資料模型操作的兩種方法

一、建立一個完整的web專案 1.在pycharm命令列中輸入命令:     django-admin   startproject     myweb,即可建立一個新的web專案 新的web專案包

python web框架【補充】cookiesession(Django

oct 語言 key 隱私 auth 自己 session失效 單單 sdf 一、cookie和session的介紹 cookie不屬於http協議範圍,由於http協議無法保持狀態,但實際情況,我們卻又需要“保持狀態”,因此cookie就是在這樣一個場景下誕生。 coo

Python之路66-Django中的CookieSession

python目錄一、Cookie二、Session一、Cookie1.獲取Cookie request.COOKIES["key"] request.get_signed_cookie(key, default=RAISE_ERROR, s, max_age=None) # 參數 # default:默認

關於Django Web應用架構設計開發的幾個問題

依賴 實際應用 解決辦法 會有 簡單的 upd 嵌套 有用 缺點 1、關於分層,做過傳統JEE應用的同學肯定知道JEE應用會分很多個設計層。根據傳統Web應用架構設計一般從上到下分這麽幾個層(太懶了,不畫圖了):Web前端層、Web後端交互層、業務層、基礎數據設施層,Web

關於django用戶登錄認證中的cookiesession

技術 ima username 就會 關於 logs 之前 cookie req 最近弄django的時候在用戶登錄這一塊遇到了困難,網上的資料也都不完整或者存在缺陷。 寫這篇文章的主要目的是對一些剛學django的新手朋友提供一些幫助。前提是你對django中的sessi

CookieSession,訪問Web項目上的資源文件

容量 bmi red 顯示 ssi 物理 spa 管理 正整數 WEB項目總路徑問題總結: 背景:項目中的資源文件我們如何訪問:(路徑怎麽寫) 例子:webRoot目錄下有一個目標資源: target.html,如何訪問 思考: 目標

《移動Web前端高效開發實戰》筆記2——使用Gulp構建一個ECMAScript 6Sass應用

腳本 x文件 node.js 磁盤 clas res 運行 brush 開發 8.3.1 安裝和配置 運行Gulp需要Node.js環境,請參看第二章內容搭建Node.js環境。使用NPM全局安裝Gulp,命令如下: npm install gulp-cli –g 然

Django中的cookiesession

datatime cnblogs 字典 ati 時間 jquery exp close make cookies   客戶端瀏覽器上的一個文件 {‘user‘:‘xiaoyanzi‘}   獲取cookie: request.COOKIES.get(‘usernam

djangocookie、sessionajax

length clean 投票 console 默認值 設置 什麽 save pre 1 Cookie cookie是什麽? 保存在客戶端瀏覽器上的鍵值對 {k:v} cookie依附在請求頭或響應頭中出現 發