Django day06-HttpRequest对象

HttpRequest对象

服务器接收到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

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:涉及到安全性要求比较高的数据。如银行卡账号,密码等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值