Django-5
Django-5
1.Coookie
1.1 什么是cookie
Cookie是储存在浏览器端的一小段文本数据(键值对). 被广泛用于在网站之间传输信息, 当您访问一个网站时,它会将一个Cookie发送到您的浏览器中,并在您返回该网站时读取该Cookie。
1.2 如何在django中使用cookie
设置cookie
rep = render(request, ....)
rep.set_cookie = {key: value} # 设置cookie
"""
参数: key: 键 vlaue: 值
max_age = 超时时间
expires=None 超时时间
path = '/' 生效路径
secure = False Https传输
httponly = False 无法被js获取
"""
request.COOKIES.get("...") # 获取cookie
// 通过js操作cookie的值
// 1> 先导入jquery.cookie.js
// 2> 两种方式获取cookie的值
$.cookie.js
document.cookie
加盐的cookie:
# django加盐基于HMAC算法签名
rep.set_signed_cookie('username', '...', salt='salt') # 加盐
rep.get_signed_cookie('username', salt='salt') # 获取
2.装饰器基于FBV和CBV的应用
2.1 FBV的验证用户登录
def wrapper(func):
def inner(request, *args, **kwargs):
# 验证登录信息
if not request.cookie.get('usernmae'):
return redirect('/login/')
ret = func(request, *args, **kwargs) # 原函数
return ret
return inner
@wrapper
def home(request):
return Http('登录成功')
2.2 CBV的验证用户登录
from django.utils.decorators import method_decorator
def wrapper(func):
def inner(request, *args, **kwargs):
# 验证登录信息
if not request.cookie.get('usernmae'):
return redirect('/login/')
ret = func(request, *args, **kwargs) # 原函数
return ret
return inner
@method_decorator(auth, name='dispatch')
class Home(views.View):
# @method_decorator(auth) # 相当于给所有映射关系都加装饰器
# def dispatch(self, request, *args, **kwargs):
# return super(Order, self).dispatch(request, *args, **kwargs)
def get(self, request): # 固定方法
print(request.method) # GET
return render(request, 'home.html')
def post(self, request): # 固定方法
print(request.method) # POST
return render(request, 'home.html')
3.session
...未完待续
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django-5 - Python技术站