学习笔记(24):第一章: 路由与模板-Request对象与Response对象

立即学习:https://edu.csdn.net/course/play/25568/305943?utm_source=blogtoedu

Request和Response是客户端与服务器沟通的桥梁,客户端向服务器发送服务请求,服务器返回Response处理后的对象.

 

Django中把Request对象封装了一个类对象,HttpRequest

Reqeust对象

 

关键字

说明

method

返回请求的方式(GET|POST)

path

返回页面的路径(不包括域名)

META

封装请求头的数据

(字典类型,key大写,下划线连接)

REMOTE_ADDR 客户端的IP地址

CONTENT_TYPE 请求正文的MIME类型

-text/html HTML

-text/plain 普通文本

-application/json Json

GET

封装GET请求数据的QueryDict对象

POST

封装POST请求数据的QueryDict对象

FILES

封装上传文件数据

COOKIES

封装请求的cookies,类似字典的对象

session

可以读写的类似字典的对象

  1. index_handler(request)函数,request是请求默认函数,将quest封装到了HttpRequest中

  2. 服务器可以通过request获得客户端像服务器发送的全部数据

  3. 数据可以通过列表左侧关键字获取

  4. 得到请求的方式request.method得到请求方式,常用的有GET和POST

  5. GET 如果客户端向服务器发送了一条数据,这条数据包括的username='name1'GET请求会把该数据放到URL中,网址中就会看到该数据,

  6. POST请求会把数据封装在header中,并以加密的方式进行保存.所以在浏览器中,URL是按不到username=name1这样的数据的.POST请求相比GET更安全.对于敏感数据都会使用POST.,得到请求方式就是method,返回值是大写GET|POST

  7. path 返回当前页面的路径,不包括域名,如目前服务器的路径是blog.edu.net(域名),如后面有/user,如果通过request.path,返回的就是user不会包括前面的域名,

  8. META参数都封装哪些参数,可以通过直接打印查看.Json类似前端的一种字典{key:value},在python中成为字典,在前端中称为json,python字段和json不同点:1.在python中如果字典对应的值为空,可以以NONE显示,在json中不用NONE表示,用NULL.2.在python中表示真假用True Fales,在json中真假都是小写,true,false.

print(request.META)# 得到的字段就是所有请求头的数据

print(request.META)并不是很直观,可以通过for in进行遍历key

for key in request.META.keys():

print('%s=%s' % (key,request.META[key]))# 打印key等于value

  1. request.get可以得到GET请求发到服务器的所有数据.

  2. request.post可以得到post请求的所有数据.,get和.post得到的数据保存在QueryDict对象中,可以通过GET.get或GET.getlist方式获取.

  3. FILES,如果客户端像服务器发送的是文件,可以通过request.files获取客户端发过来的所有文件.

  4. cookies,保存在客户端中,常见功能,浏览器自动登录,cookie中带有用户名和密码,以及在自动登录功能上过期的时间,服务器接可以接收到用户名密码,对请求进行处理,完成登录操作.

  5. session保存在服务端中,用于保存敏感信息,根据cookie上传的值进行获取

HTTPResponse对象.

 

状态码是服务器告知客户端请求的结果

如用户要访问的路径是urls中没有的,则返回404异常

F12返回状态码:

 

JsonResponse对象

1. 首先在views中导入包

2. 在视图参数中传入JsonResponse,传入的参数类型是字典. JsonResponse会把字典对象转成json对象,Jsonresponse是对Httpresponse的一种封装.

 

以下代码可以理解成Httpresponse,content = "要返回的对象",content_type类型是application/json,json对象

当字典中出现中文,需要加入json_dumps_params = {"ensure_ascii":False}

重定向

def redirect_hanlder(request):

return redirect("/user") 相当于在浏览器中输入了hsot/user,,path就是/user,与域名相互拼接的url地址

 

可以与reverse配合重定向,先通过user:index定义首页,在通过redirect跳转到设置的重定向user页

def redirect_handler(request):

return redirect(reverse('user:index')) #重定向到user:index 通过reverse得到路有映射

path ('redirect',views.redirect_handler) # 在项目user/url中加入重定向handler和redirecthanlder的path

通过如此使用,用户访问的路径将会强制调转到服务器配置的固定页面

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值