django高级
Cookie安全性与生命周期
本节目表
Cookie的原理 Cookie的设置与获取 Cookie的安全性
Cookie的原理
Cookie是有服务器生成,存储在浏览器中的键值对数据 每个域名的Cookie相互独立 浏览器访问域名为A的url地址,会把A域名下的Cookie一起传递到服务器 Cookie可设置过期时间
Cookie的设置与获取
分别建立一个设置Cookie 和 查找Cookie的路由
from django. urls import path, re_path
from . import views
urlpatterns = [
path( '' , views. index_handler, name= 'index' ) ,
re_path( 'set_cookie/(.+)/(.+)' , views. set_cookie_handler, name = 'set_cookie' ) ,
re_path( 'get_cookie/(.+)' , views. get_cookie_handler, name = 'get_cookie' ) ,
]
建立两个视图函数
def set_cookie_handler ( request, key, value) :
response = HttpResponse( )
response. set_cookie( key, value, max_age= 60 * 60 )
return response
def get_cookie_handler ( request, key) :
value = request. COOKIES. get( key)
return HttpResponse( value)
Cookie的安全性
Cookie的存储在客户端,即浏览器的,所以具有不安全性 对于敏感的数据,应该加密,或者保存在服务端
Session 的原理与使用
本节掌握
Session 原理 Session的设置 Session的获取 fiush()和clear()命令
Session 原理
Session基于Cookie Session 把敏感的数据以加密的方式保存在服务器
urlpatterns = [
path( '' , views. index_handler, name= 'index' ) ,
re_path( 'set_cookie/(.+)/(.+)' , views. set_cookie_handler, name = 'set_cookie' ) ,
re_path( 'get_cookie/(.+)' , views. get_cookie_handler, name = 'get_cookie' ) ,
re_path( 'set_session/(.+)/(.+)' , views. set_session_handler, name= 'set_session' ) ,
re_path( 'get_session/(.+)' , views. get_session_handler, name = 'get_session' ) ,
def set_session_handler ( request, key, value) :
request. session[ key] = value
return HttpResponse( '设置成功' )
def get_session_handler ( request, key) :
value = request. session. get( key)
return HttpResponse( value)
flush 和clear
request.session.flush() 删除数据 request.session.clear() 清空sessionid对应的数据
urlpatterns = [
path( '' , views. index_handler, name= 'index' ) ,
re_path( 'set_cookie/(.+)/(.+)' , views. set_cookie_handler, name = 'set_cookie' ) ,
re_path( 'get_cookie/(.+)' , views. get_cookie_handler, name = 'get_cookie' ) ,
re_path( 'set_session/(.+)/(.+)' , views. set_session_handler, name= 'set_session' ) ,
re_path( 'get_session/(.+)' , views. get_session_handler, name = 'get_session' ) ,
path( 'flush' , views. flush_session_handler, name= 'flush' ) ,
path( 'clear' , views. clear_session_handler, name = 'clear' )
]
def flush_session_handler ( request) :
request. session. flush( )
return HttpResponse( 'flush' )
def clear_session_handler ( request) :
request. session. clear( )
return HttpResponse( 'clear' )