manage.py 命令行工具,用于Django进行不同方式交互的交互脚本
重定向:
从一个地址转到另外一个地址
redircet(路径)
在django中就是从一个视图,转到另外一个视图
当一个逻辑处理完后,不需要显示数据,而是转回到其他页面。这时使用重定向
无状态:
浏览器请求服务器是无状态的
无状态指一次用户请求的时候,服务器无法知道此用户之前做过什么,每一次的请求都是新的
因为浏览器与服务器是使用的socket套接字进行通信的,服务器将这次请求的结果返回给客户端之后会关闭当前套接字,而且服务器也会在处理完页面后销毁这个对象
cookie:
在浏览器端进行状态报出
弊端:不可以存储敏感信息
最典型的应用是判断注册用户是否已经登录网站
购物车
cookie是存储在浏览器的一端纯文本信息,不同域名的cookie是不能互相访问的
作用:用于浏览器和服务器间做状态保持用的
状态保持就是:当你访问一个网站的时候他可以知道你的一些信息,比如之前是否注册或者登陆过本网站,服务器通过判断就能得到这些信息
当服务器在响应数据给浏览器的时候,可以设置cookie返回给客户端,客户端在收到cookie后会将其保存到本地,在下次在访问该服务器时会将所有cookie信息提交给服务器
读取cookie:
request.COOKIES 返回的是一个字典
设置cookie:
response.set_cookie(key,value)
删除
response.delete_cookie(key)
session:
对于一些重要的敏感信息,不能存储在,浏览器中,而此时就要用到session,他是在服务器端就行状态保持,并且session依赖于cookie
django已经默认启用了session,已经默认在应用中安装了session应用 ,并且sesion数据已经默认的存储方式已选为数据库 。所以只要使用HttpRequest对象的session属性,就可以进行对写操作
设置session的时候是通过HttoRequest对象的ression属性进行设置,设置完毕后会将其存入数据库中,响应给客户端的数据时,会带这sessionid给客户端,客户端吧sesionid写入cookie数据中记录这个cookeid
设置:
request.session[‘键’] = 值
读取
request.session.get(‘键’,默认值)
删除指定键的值
del request.session[‘键’]
清楚所有键的值
request.session.clear()
清楚session数据,在存储中删除所有键及对应的值,形成空表
request.sessipn.flush()
设置会话的超时时间
request.session.set_expity(value)
所有请求者的Session都会存储在服务器中,服务器如何区分请求者和Session数据的对应关系呢?
答案:在使用Session后,会在Cookie中存储一个sessionid的数据,每次请求时浏览器都会将这个数据发给服务器,服务器在接收到sessionid后,会根据这个值找出这个请求者的Session
2. 存储Session时,键与Cookie中的`sessionid`相同,值是开发人员设置的键值对信息,进行了base64编码,过期时间由开发人员设置
•