[TOC=1,5]
>[success] # Cookies
Cookie是由服务器端生成,发送给浏览器,浏览器将发送的cookie记录,当用户访问的时候讲cookie发送给服务器端,进行判断,一般应用场景在网页登陆。
有时候我们发现,我在谷歌浏览器登陆,但打开ie又给重新登陆,但是在使用谷歌却不用,因为cookie是储存在各自的浏览器中
![](https://box.kancloud.cn/1c23e4ef0432e0de9e2aa5a8228b98ac_1212x77.png)
>[info] ## 常用的cookies方法
>[danger] ##### 使用思路
~~~
1.在登录页面的时候,当用户民密码输入正确后,通过cookies 给浏览器保存cookie 的地方赋值
2.在非登录页面,判断当前cookies 是否正确并且存在
~~~
>[danger] ##### views -set_cookie 生成cookies键值对给浏览器
~~~
red = redirect('/index/')
red.set_cookie("username",u)
return red
~~~
>[danger] ##### views -set_cookie("username",u,salt='加盐')
~~~
red = redirect('/index/')
red.set_signed_cookie("username",u,salt="pwd")
return red
~~~
>[danger] ##### 设置时间以秒为单位-set_cookie("username",u,max_age=data)
~~~
red = redirect('/index/')
#设置十秒后过期
red.set_cookie("username",u,max_age=10)
return red
~~~
>[danger] ##### 以具体的时间时set_cookie("username",u,expires=data)
~~~
import datetime
data = datetime.datetime.utcnow()
data = data + datetime.timedelta(seconds=5)
red = redirect('/index/')
red.set_cookie("username",u,expires=data)
return red
~~~
>[danger] ##### 设置生效路径set_cookie("username",u,path='/')
>[danger] ##### 设置生效域名set_cookie("username",u,domain=None)
>[danger] ##### https传输cookieset_cookie("username",u,secure=False)
>[danger] ##### 只能http协议传输,
>无法被JavaScript获取(不是绝对,底层抓包可以获取到也可以被覆盖)set_cookie("username",u,httponly=False)
>[success] # 案例
>[danger] ##### views 登陆案例
~~~
from django.shortcuts import render,redirect
from . import models
# Create your views here.
def login(request):
msg =""
if request.method == "GET":
return render(request,'login.html',{"msg":msg})
elif request.method == "POST":
u = request.POST.get('user',None)
p = request.POST.get('pwd',None)
if u and p :
obj = models.userinfo.objects.filter(user=u, pwd=p)
if obj:
red = redirect("https://www.baidu.com")
# 做cookies 保存
red.set_signed_cookie("username",u,salt="pwd")
return red
msg = "密码错误"
return render(request,'login.html',{"msg":msg})
def index(request):
if request.method == "GET":
# 获取浏览器中的cookies
u = request.COOKIES.get("username")
if u :
return render(request,"index.html",{'u':u})
return redirect("/login.html")
~~~
>[danger] ##### 分页案例
juqery.cookie.js和jquery-1.12.4.js,主要用这两个包版本无要求
* 思路如下:
~~~
1.通过js 获取页面下拉选择的页数,通过$.cookie("key","val")方法进行保存。
2.前端触发页面刷新,后台通过request.COOKIE.get()方法用来接受,前端传回的值
3.通过传回的cookie,接受后改变接片值
~~~
~~~
<select id="ps" onchange="chan(this)">
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
<option value="40">40</option>
</select>
<script>
$(function () {
var v=$.cookie("page_count");
if(v){
$('#ps').val(v);
}else {
$('#ps').val(10);
};
});
function chan(ths) {
var v = $(ths).val();
$.cookie("page_count",v);
location.reload();
}
</script>
~~~
![](https://box.kancloud.cn/01c00bd2436b8a09471f9407626cf785_678x411.png)
- 网络原理
- 为搭建框架做准备
- 简单认识网路
- 自定义模拟网站案例
- 优化最终框架
- 数据存储 -- data
- 用户个人信息存储 -- User.txt
- 路由映射 -- routes
- 处理用户信息 -- routes_static.py
- 保存静态文件 -- static
- templates -- html 集中处理模块
- 首页 -- index.html
- 登陆 -- login.html
- 用户注册页面 -- register
- 日志模块 -- log.gua.txt
- 启动文件--server.py
- orm处理 -- model.py
- 日志模块 -- utils.py
- 两种数据库类型
- 传统数据库了解篇
- 前端快速入门
- JS简单使用入门
- css简单快速入门
- DJANGO
- virtualenv-创建虚拟环境
- 项目结构
- django-admin中文配置
- django-打印sql语句
- django-基础
- 认识MVC和MTV
- Django--初识
- Django--初识案例
- Django-FBV/CBV
- Django--常用input 交互
- Django-url
- Django-url.py 配置
- Django-include 使用
- Django-url name
- Django-ORM
- ORM-数据库配置
- ORM-model字段
- ORM-model字段解释
- ORM-字段选项
- ORM-查询
- ORM-四种常用查询方法
- ORM-三种获取数据
- ORM-其他查询方式
- ORM-条件查询双线
- ORM-Q和F条件使用
- ORM-三种数据库交互
- 案例 -- 一对多
- ORM-技巧/常见问题
- ORM-N+1 问题
- ORM-并发的处理
- ORM-数量查询、
- ORM-正向反向查询
- ORM-基础案例一
- ORM-基础一对多案例
- Django-templates
- Django-模板的继承
- Django-模板的过滤
- Django-自定义模板的过滤
- Django-cookie
- Django-cookies 装饰器
- Djang-session
- Django-CSRF
- Django-中间件 -- 后续了解
- Django- 缓存 -- 没有深入了解
- Django-form
- From-ajax
- form-内部验证处理
- form-属性
- form-常用的标签字段
- form-常用的下拉和选择
- form-widget速查
- Django-ajax序列化
- Django-多种ajax写法
- ajax-原生写法
- ajax-$写法
- ajax-ifram
- Django-ajax图片上传
- ajax-原始写法
- ajax-正常写法
- iframe+form
- 实战写法
- Django-常用自编写组件
- Django-双菜单组合搜索
- Django - 多菜单组合搜索
- Django-分页
- django-综合基础
- 综合基础-render
- django-admin
- admin-页面配置
- admin-字段配置
- admin-编辑页面
- admin-forms验证
- admin-创建抽象类
- django-验证码
- 验证码-第三方生成库
- 验证码-view.py使用
- 验证码-注意引入Monaco.ttf
- django-用户注册
- 注册-form 模块
- 注册-views 模块
- 注册-html模块
- 注册-model模块
- django-用户登录三种
- session登录
- form-session 写法
- view-写法
- Html-写法
- model-写法
- 继承类登录
- 外键关联登录
- django-简单的student 管理案例
- app-urls.py
- app-models.py配置
- admin-admin.py配置
- app-form.py 和数据库关联的写法
- app-FBV_views.py
- app-CBV_views.py
- templates-index.html
- django-博客系统
- APP目录-models.py 创建
- APP目录-基础展示数据分析
- APP目录-基础数据展示cls
- ListView
- DetailView
- FormView
- 额外功能拓建
- 添加文章搜索/用户文章查询功能
- 增加一个友情链接
- 增加一个评论模块
- App-利用Bootstrap4 搭建样式
- 项目crm
- 思维导图
- perfectCRM-项目名字
- settings.py-配置
- view.py-登陆/登出函数
- crm-app文件
- model.py-表的创建
- admin.py-注册后台
- view.py-视图层
- static-静态文件
- css
- bootstrap.min.css
- dashboard.css
- ie10-viewport-bug-workaround.css
- signin.css
- fonts
- imgs
- js
- jquery.js
- bootstrap.min.js
- holeder.js
- ie10-viewport-bug-workaround.js
- ie-emulation-modes-warning.js
- plugins
- html模板文件-templates
- crm
- index.html-首页模板