服务器接收到http协议的请求后,会根据报文创建HttpRequest对象,这个对象不需要手动创建,直接使用服务器构造好的对象即可。视图的第一个参数必须是HttpRequest对象,在Django.http模块中定义了HttpRequest对象的API。
1.属性
下面属性除非特别说明,否则都是只读的。
path:一个字符串,表示请求的页面完整路径,不包含域名和参数部分。
method:一个字符串,表示请求使用的HTTP方法。常用值包括:‘GET’、‘POST’。
a)在浏览器中给出地址发出请求采用get方式,如超链接;
b)在浏览器中点击表单的提交按钮发起请求,如果表单的method设置为post则为post请求。
encoding:一个字符串,表示提交的数据的编码方式。
a)如果为None则表示使用浏览器的默认设置,一般为utf-8;
b)这个属性是可写的,可以通过修改它来修改访问表单数据使用的编码,接下来对属性的任何访问将使用新的encoding值。
GET:QueryDict类型对象,类似于字典,包含get请求方式的所有参数。
POST:QueryDict类型对象,类似于字典,包含post请求方式的所有参数。
FILES:一个类似字典的对象,包含所有的上传文件。
COOKIES:一个标准的Python字典,包含所有的cookie,键和值都为字符串。
session:一个既可读又可写的类似于字典的对象,表示当前的会话,只有当Django启用会话的支持时才可用。
2.Cookie
因为http协议是无状态的,即服务器无法对同一客户端的多次http请求进行跟踪。所以需要使用cookie存储一些信息。
cookie是由 服务器生成,存储在浏览器 的一小段文本信息。
cookie有如下特点:
a)以 键值对 方式进行存储
b)通过浏览器访问一个网站时,会将浏览器存储的 跟这个网站相关的所有cookie信息 发送给该网站的服务器——request.COOKIES
c)cookie是基于域名安全的
d)cookie是有 过期事件 的,如果不指定,默认关闭浏览器之后cookie就会过期
若设置cookie信息,需要一个HttpResponse类的对象或其子类,设置set_cookie即可添加或更改cookie内容。
浏览器发给服务器的cookie保存在request对象的COOKIE中。
3.session
session是由 服务器生成,存储在服务器 的一小段文本信息。
session的特点:
a)session是以 键值对 进行存储的
b)session依赖于cookie,唯一标识码 保存在cookie的sessionid中
c)session也是有过期时间,如果不指定,默认两周就会过期
session的属性及方法:
1)以键值对的格式写session
requset.session['键'] = 值
2)根据键读取值(若对应的键没有值,会使用默认值)
requset.session.get{ '键',默认值 }
3)清除所有session,在存储中删除值部分
request.session.clear()
4)清除session数据,在存储中删除session的整条数据
request.session.flush()
5)删除session中的指定键及值,在存储中只删除某个键对应的值
del request.session['键']
6)设置会话的超时时间,如果没有指定过期时间则两个星期后过期
request.session.set_expiry(value)
如果value是一个证书,会话的session_id cookie将会在value秒没有活动后过期;
如果value为0,那么用户会话的session_id cookie将在用户的浏览器关闭时过期;
如果value为None,那么会话的session_id cookie会在两周后过期。
ajax即异步的javascript,用于在不重新加载页面的情况下,对页面进行局部刷新。
1.标准格式如下:
$.ajax({
url:"http://www.microsoft.com", //请求的url地址
dataType:"json", //返回格式为json
async:true,//请求是否异步,默认为异步,这也是ajax重要特性
data:{"id":"value"}, //参数值
type:"GET", //请求方式
beforeSend:function(){
//请求前的处理
},
success:function(req){
//请求成功时处理
},
complete:function(){
//请求完成的处理
},
error:function(){
//请求出错处理
}
});
2.ajax请求过程
1.流程
第一步,由前端/浏览器发起ajax请求;
第二步,后台/Django框架进行处理并返回JsonResponse类型的数据;
第三步,前端/浏览器成功接收数据并执行回调函数。
2.创建静态文件夹
js、css、image等文件都属于静态文件。在项目下创建static文件下,下面分别创建三个文件夹js、css、images。然后在项目下的setting.py添加静态文件的保存目录
3.ajax请求注意事项:
a)分析出请求地址时需要携带的参数
b)视图函数处理完成之后,所返回的json的格式
cookie:记住用户名,安全性要求不高。
session:涉及到安全性要求比较高的数据。如银行卡账号,密码等。