Django(4)|Django中使用HTTP请求

一、认识HTTP请求

1.认识get和post

HTTP请求是指从客户端到服务器端的请求消息。常用的请求方式是GET请求和POST请求。

GETPOST
通常使用一般像服务器获取资源一般向服务器提交数据
格式url中从?后开始,是参数(key=value的形式),以&符号进行区分。例如:https://www.baidu.com/s?wd=world&name=zhangsanpost请求的样式和get请求的样式相同,同时还可以把参数写在请求体当中
特点参数写在url中是不安全的,而且url长度是有限的,携带的参数数据有限参数写在请求体当中,这样更加安全隐蔽,安全性比get高,而且传输的数据量也比较大

2.request对象的方法

Django中的请求包含了很多方法,简单认识下:

方法含义
request.COOKIES用户身份
request.FILES请求携带的文件,比如图片
request.GETget请求携带的参数
request.POSTpost请求携带的参数
request.scheme请求协议,https还是http
request.method请求的方式
request.path请求的路径
request.body请求的主体,返回的是一个字符串
request.META包含了具体的请求数据,包含所有的http请求的信息信息
request.META.get(‘OS’)请求的系统
request.META.get(‘HTTP_USER_AGENT’)发出请求的浏览器的版本
request.META.get(‘HTTP_HOST’)请求的主机
request.META.get(‘HTTP_REFERER’)请求的来源

3.常见的响应码

请求了服务器,那么服务器会返回一个相应信息,响应信息通常包含一个响应码,让我们识别请求是否成功。常见的响应码如下:
在这里插入图片描述

二、Django的请求演示

1.get请求

在html中,我们使用了一个表单form,在提交的时候,我们可以把整个表单提交到某个服务器。

  • 参数action:提交的地址
  • 参数method: 提交的方式 get/post,默认get
    在这里插入图片描述
    运行
    在这里插入图片描述
    结果
    在这里插入图片描述

2.post请求

这次我们换post
在这里插入图片描述

运行,提交,我们看到表单中有个csrfmiddlewaretoken值,下边讲
在这里插入图片描述
结果
在这里插入图片描述

CSRF

为什么会在请求参数中携带个csrfmiddlewaretoken值呢?​csrf是跨站请求伪造攻击,使用当前浏览器还在生效的cookie对指定网站进行操作,最初针对的是银行系统。
[外链图片转存失败(img-coHUFg7P-1568730338062)(day07.assets/1568701219828.png)]
django的csrf 只针对post请求,会在请求之初,给用户下发一个串用来校验身份的编码,并且每次请求下发的串都不一样。使用csrf的步骤如下:

  1. 在settings文件中打开csrf相关验证
    在这里插入图片描述
  2. 在模板中的form表单域中添加 {% csrf_token %} ,这个标签实际上是隐藏域
    在这里插入图片描述

三、数据校验

我们在使用form表单的时候,通常会对传过来的数据进行校验,例如从长度,数据类型,空值等方面。关于校验有多种方式,例如通过前端校验和后台校验。

  • 前端校验: 通过js或者jq对form表单提交的数据进行校验。优点就是直观和快速,能减少服务器压力,有利于对用户即时提醒,用户体验比较好。
  • Django后端校验:在views视图中,对数据一个一个单独校验,安全性较高,但是比较复杂,也会增大服务器压力。
  • Django-form表单类校验:Django-form表单类校验。一个自带的框架可以在html上自动生成一个校验表单。可以前端校验也可以后端校验。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张烫麻辣亮。

谢谢老板,祝你生8个儿子!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值