标签:mon main object 查询 dir rip params 数据 function
cookie
:客户端浏览器上的一个文件,用键值对的方式存储在文件中。在服务器端和客户端都可以对其进行设置和获取。利用这一特性,可以对用户进行登录认证,设置分页....
服务器端:
在views.py中:
设置
rep = HttpResponse(...) 或 rep = render(request, ...),rep = redirect(...)
rep.set_cookie(key,value,...)
rep.set_signed_cookie(key,value,salt=‘加密盐‘,...)
参数: key, 键 value=‘‘, 值
max_age=None, 超时时间 //秒
expires=None, 超时时间(IE requires expires, so set it if hasn‘t been already.) //
import datetime
current_date = datetime.datetime.utcnow()
current_date = current_date + datetime.timedelta(seconds=5)
res.set_cookie(‘key‘,"value",expires=current_date)
path=‘/‘, Cookie生效的路径,/ 表示根路径,特殊的 跟路径的cookie可以被网站的任何url的页面访问,如"/index",只能index下能访问
domain=None, Cookie生效的域名,在哪个子url下生效
secure=False, https传输(https时,设为ture)
httponly=True 只能http协议传输,无法被JavaScript获取(不是绝对,底层抓包可以获取到也可以被覆盖)
获取:
def cookie(request): # 获取 Cookie #
request.COOKIES # 客户端发来的所有Cookie #
request.COOKIES[‘username111‘] # 这个Cookie,就是字典
request.COOKIES.get(‘username111‘)
在服务器端登录时设置cookie:
def login(request):
msg = ‘‘
if request.method == ‘POST‘://提交的数据
username = request.POST.get(‘username‘)
password = request.POST.get(‘password‘)
v = models.Administrator.objects.filter(username=username,password=password).count()//查询数据库
if v:
rep = redirect(‘/app/index/‘)
rep.set_cookie(‘username‘,username)
return rep
else:
msg = ‘用户名或密码错误‘
return render(request,‘login.html‘,{‘msg‘:msg})
客户端访问其他url时,获取cookie对其进行身份认证:
def index(request):
username = request.COOKIES.get(‘username‘)
if username:
return render(request,‘index.html‘,{‘username‘:username})
else:
return redirect(‘/app/login‘)
客户端:
<script src="/static/jquery-2.1.4.min.js"></script>//导入jquery
<script src="/static/jquery.cookie.js"></script>//导入jQuery.cookie用于方便操作cookie
<script>
// $.cookie()
//一个参数: $.cookie(k) 获取值
//二个参数: $.cookie(k,v) 设置值
$.cookie(‘k‘,‘v‘,{‘path‘: ‘/index.html‘})//{}中参数和服务器端一致,键值对的方式
</script>
补充:
obj.set_signed_cookie(‘username‘,"kangbazi",salt="asdfasdf") # 加密方式设置cookie
request.get_signed_cookie(‘username‘,salt="asdfasdf") # 加密获取
标签:mon main object 查询 dir rip params 数据 function
原文地址:http://www.cnblogs.com/jcplee/p/7875545.html