Django框架基础之COOKIE

cookie:
a. 保存在浏览器端“键值对”
b. 服务端可以向用户浏览器端写cookie
c. 客户端每次方请求时,会携带cookie去

服务端给浏览器发送cookie:
obj=redirect(‘‘)
obj.set_cookie()
obj.set_signed_cookie(key,value,salt=‘‘,)

服务端从浏览器获取cookie:
request.COOKIE.get(‘key‘)
request.get_signed_cookie()

cookie: key, 键
value=‘‘, 值
max_age=None, 超时时间 以秒为单位
expires=None, 超时时间
path=‘/‘, cookie生效的路径,/表示根路径,根路径的cookie可以被任何url的页面访问
domain=None, cookie生效的域名
secure=False, https传输
httponly=False 只能http协议传输,无法被JavaScript获取(不是绝对,底层抓包可以获取到也可以覆盖)

应用: a 投票
b 用户登录

1 在URL前加https://前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更加安全。
2 Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。
3 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。http的连接很简单,是无状态的,...
4 HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议
5 要比http协议安全

https

利用cookie做用户验证:

 1 def login(request):
 2     if request.method==‘GET‘:
 3         return render(request,‘login.html‘)
 4     else:
 5         username=request.POST.get(‘username‘)
 6         passwd=request.POST.get(‘passwd‘)
 7         if username==‘alex‘ and passwd==‘123‘:
 8             obj=redirect(‘/classes/‘)
 9             # obj.set_cookie(‘ticket‘,‘dfsgtrhfgtd‘,max_age=‘10‘)  #最大时效    ‘一个月免登陆’
10             obj.set_signed_cookie(‘ticket‘,‘123‘,salt=‘666‘,max_age=10)    #ticket=123:1dNbYh:Y3vofyscBVHMEOmld_Y7k-_iTjg
11             return obj
12         else:
13             return render(request,‘login.html‘)

 1 #cookie验证装饰器函数
 2 def login_later(func):
 3     def wrapper(*args):
 4
 5         print(args[0])   #<WSGIRequest: GET ‘/classes/‘>
 6
 7         # ticket = args[0].COOKIES.get(‘ticket‘)
 8         ticket=args[0].get_signed_cookie(‘ticket‘,salt=‘666‘)
 9         if not ticket:
10             return redirect(‘/login/‘)
11         else:
12             return func(*args)
13     return wrapper

时间: 2024-10-07 21:51:11

Django框架基础之COOKIE的相关文章

Python的Django框架中的Cookie相关处理

Python的Django框架中的Cookie相关处理 浏览器的开发者在很早的时候就已经意识到, HTTP's 的无状态会对Web开发者带来很大的问题,于是(cookies)应运而生. cookies 是浏览器为 Web 服务器存储的一小段信息. 每次浏览器从某个服务器请求页面时,它向服务器回送之前收到的cookies 来看看它是怎么工作的. 当你打开浏览器并访问 google.com ,你的浏览器会给Google发送一个HTTP请求,起始部分就象这样: GET / HTTP/1.1 Host:

Django框架基础(一)

Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. 1 安装 1 pip3 install django 2 # 创建Django程序 3 django-admin startproject mysite 4 # 进入程序目录 5 cd mysite 6 # 启动socket服务端,等待用户发送请求 7 python manage.py runse

Django框架基础

Django基础-Lesson1 web框架概念 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统. 对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端.  socket模拟服务端 最简单的Web应用就是先把HTML用文件保存好,用一个现成的HTTP服务器软件,接收用户请求,从文件中读取HTML,返回. 如果要动态生成HTML,就需要把上述步骤自己来实现.不过,接受HTTP

Django框架基础之Form组件

服务端假设所有用户提交的数据都是不可信任的,所以Django框架内置了form组件来验证用户提交的信息 form组件的2大功能:       1 验证(显示错误信息)       2 保留用户上次输入的信息                  -- 可以生成html标签应用: class A_Form(Form): 字段=fields.字段类型(默认参数: required=True, widget=widgets.插件(attrs={})) 常用字段:Charfield,RegexField,I

django框架基础-django redis-长期维护-20191220

###############   django框架-django redis    ############### ###############   django框架-django redis    ############### ###############   django框架-django redis    ############### ###############   django框架-django redis    ############### ##############

django框架基础-django的中间件-长期维护-20200113

##################    中间件      ####################### ##################    中间件      ####################### ##################    中间件      ####################### ##################    中间件      ####################### ##################    中间件     

Django 框架篇(六): Cookie 与 Session

Cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情况. 一句有意思的话来描述就是人生只如初见,对服务器来说,每次的请求都是全新的. 状态可以理解为客户端和服务器在某次会话中产生的数据,那无状态的就以为这些数据不会被保留.会话中产生的数据又是我们需要保存的,也就是说要"保持状态".因此Cookie就是在这样一个场景

django框架中的cookie与session

cookie因为http是一个无状态协议,无法记录用户上一步的操作,所以需要状态保持.cookie和session的区别:1.cookie是保存在浏览器本地的,所以相对不安全.cookie是4k的大小,最多保存20条(因为最原始的浏览器的本地是很小的,只是一个历史数据,但是其实是不精确的),默认的过期时间是14天.2.session是保存在服务器的,是相对安全的,session依赖于cookie,sessionid保存在cookie中,理论上无大小限制.3.相同点:都是实现状改保持,都是有服务器

Django框架基础学习

Django安装 python下载地址 http://www.python.org/download/releases/3.3.4/ Django的下载地址:https://www.djangoproject.com/download/ 1)安装(进到解压目录) python setup.py install 2.配置环境变量(PATH) C:/Python27/Lib/site-packages/django;C:/Python27/Scripts; 3.检查是否安装成功,可以在dos下进入D