博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(25)Django中操作cookie与session组件(添加cookie和删除cookie)
阅读量:5017 次
发布时间:2019-06-12

本文共 2286 字,大约阅读时间需要 7 分钟。

cookie是存在于客户端浏览器上的键值对,是明文的

cookie是当用户访问网站时候和数据提起携带过去,安全性比较差, 容易被拦截

 

session存在于服务端的键值对,是一串加密的字符串

当用户登陆成功,session会在服务端生成一段随机的加密字符串,然后写入客户端浏览器,这样客户端浏览器每次发送请求时候都会携带这个加密字符串,然后服务端收到后进行数据库匹配,访问任何页面都会进行匹配,成功则无需登录

 

cookies只在当前域下有效,什么是当前域:,只要从服务端获取cookie后,访问当前域下的任何页面都不用再验证

 

关于render,HttpResponse,redirect都是对象,都可以实例化后调用对象下的方法

比如:写入cookie,就可以通过实例化这个对象来写入obj = HttpResponse('写入cookie成功'),删除cookie先实例化对象obj = HttpResponse('删除cookie成功'),然后调用对象下的delete方法直接删除即可obj.delete_cookie('name')

 

 写入和获取cookie

urls.py

from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [     url(r'^admin/', admin.site.urls),     url(r'^$',views.index),     url(r'^index/$',views.index),     url(r'^upload_file/$',views.upload_file),     url(r'^cookie_test/$',views.cookie_test),     url(r'^cookie_get/$',views.cookie_get) ]

views.py

from django.shortcuts import render,HttpResponse from app01 import models from django.http import JsonResponse # Create your views here. def index(request):     return render(request,'index.html') def upload_file(request):  '''文件上传'''     import json     dic = {'status':100,'msg':None}     if request.method == 'POST': # post形式上传json格式数据,POST中没有值,在body中取出         upload_dic = json.loads(request.body)         name = upload_dic['name']         pwd = upload_dic['pwd']         user = models.User.objects.filter(name=name,pwd=pwd).first()         if user:             dic['msg'] = '登陆成功'         else:             dic['status'] = 101             dic['msg'] = '账号或密码错误' # 这里注意返回一定是Json格式         return JsonResponse(dic) def cookie_test(request): '''写入cookie'''     obj = HttpResponse('写入cookie成功') #set_cookie就可以向浏览器写入cookie     obj.set_cookie('name','lqz')     obj.set_cookie('age','18')     return obj def cookie_get(request): '''获取cookie''' # 这就是获取cookie的方法     name = request.COOKIES.get('name')     age = request.COOKIES.get('age')     print(name)     print(age)     obj = HttpResponse('获取cookie成功')     return obj

index.html

       
ajax

Ajan实现json格式的数据传输

用户名:

密码:

 

删除cookie

def cookie_del(request): '''删除cookie'''     obj = HttpResponse('删除cookie成功') #直接调用obj对象的delete方法删除即可     obj.delete_cookie('name')     obj.delete_cookie('age')     return obj

 

转载于:https://www.cnblogs.com/shizhengquan/p/10552954.html

你可能感兴趣的文章
面向对象高级
查看>>
Bitwise And Queries
查看>>
oracle连接问题ORA-00604,ORA-12705
查看>>
Java从零开始学十三(封装)
查看>>
Python2和Python3中的rang()不同之点
查看>>
lintcode28- Search a 2D Matrix- easy
查看>>
react项目
查看>>
A Simple Tree Problem
查看>>
Modular Inverse [ZOJ 3609]
查看>>
MySQL性能测试工具之mysqlslap使用详解
查看>>
深入理解jsonp跨域请求原理
查看>>
regsvr32注册COM组件失败
查看>>
jmeter,CSV数据加载、数据库连接、正则
查看>>
MySQL学习点滴 --分区表
查看>>
4.6.1 测试基础
查看>>
洛谷 P2486 [SDOI2011]染色
查看>>
oo第三单元总结
查看>>
leetcode : Count and Say [基本功]
查看>>
洛谷 P2485 [SDOI2011]计算器 解题报告
查看>>
Slickflow.NET 开源工作流引擎基础介绍(三) -- 基于HTML5/Bootstrap的Web流程设计器
查看>>