首页 > 其他分享 >1109. 请求与响应

1109. 请求与响应

时间:2023-05-23 14:11:36浏览次数:41  
标签:请求 GET -- 响应 参数 提交 POST 1109

一、HttpRequest对象

服务器接收到http协议的请求后,会根据报文创建HttpRequest对象视图函数的第一个参数是HttpRequest对象在django.http模块中定义了HttpRequest对象的API。

二、GET和POST请求

在HTML中,form表单的作用是收集标签的内容,<form>...</form>中间可以由访问者添加类似于文本,选择,或者一些控制模块等等,然后这些内容将会被送到服务端。

一个表单必须指定两样东西:

1. form的method参数用于设置表单的提交方式,默认使用POST

2. action用于设置表单的提交url,如果不写或者保持空字符串,那么将使用当前的URL。

get提交例子:

1. get提交的参数会在url中显示

2. 可以通过request.GET.get的方法获取提交的参数

post提交例子:

1. post的提交方式不会再url中显示参数

2. 可以同request.POST.get方式来获取提交的数据

getlist方法:

request对象的属性GET、POST都是QuerySet类型的对象,与python字典不同,QueryDict类型的对象用来处理同一个键带有多个值的情况

---方法get():  根据键获取值,只能获取键的一个值;如果一个键同时拥有多个值,获取最后一个值;

---方法getlist():根据键获取值将键的值以列表返回,可以获取一个键的多个值。

 GET属性:

-- QueryDict类型的对象;

-- 包含get请求方式的所有参数;

-- 包含url请求地址中的参数对应,位于?后面;

-- 参数的格式是键值对,如key1=value1;

-- 多个参数之间,使用&连接,如 key1=value1&key2=value2。

POST属性:

-- QueryDict类型的对象;

-- 包含post请求方式的所有参数;

-- 与form表单中的控件对应;

-- 表单中控件要由name属性,则name属性的值为键,value属性的值为值,构成键值对提交;

-- 对于checkbox控件,name属性一样为一组,当控件被选中后会被提交,存在一键多值的情况。

GET和POST请求方式总结:

1. GET:GET如其名,是从服务器获取数据,不会更改服务器的状态和数据,在URL中携带参数发送给服务器;

2. POST则是将一定量的数据发送给服务器,一般会更改服务器的数据;

3. POST方法的参数不能再URL当中看到,他是通过body参数传递给服务器的,所以相对GET方法直接能在URL当中党刊传递的参数,显得更加安全一些,当然,也不能简单的判定POST方法比GET方法更安全,要是网站保持安全,需要做更多的安全处理。

三、类视图

View类视图以请求方式为类方法。在对应的方式下面编写对应的逻辑函数。

view类视图的引用。在urls.py中配置路由是通过as_view()

四、文件上传

Django在处理文件上传的时候,文件数据被保存在request.FILES,FILES中的每个键为<input type="file“ name=""/> 中的name

1. Django项目中文件路径配置

2. 文件上传form表单中:FILES只有在请求方式为POST且提交的<form>带有enctype=“multipart/form-data”的情况下才会包含数据。否则,FILES将为一个空的类似于字典的对象。

3. 配置好文件上传的视图函数:在请求方式为GET时进行页面跳转,在请求方式为POST时进行数据获取并保存,否则进行报错!

五、HttpResponse

HttpResponse的子类

返回数据的响应函数有:

HttpResponse()  返回简单的字符串对象

render()  渲染模板

redirect()  重定向,一般搭配reverse("xxxx.html")使用

JsonResponse() 返回json数据 

补充:

客户端和服务端都是怎么记录登录的状态的呢?

浏览器中的cookie:

服务器中设置cookie及获取cookie:

注:设置cookie值以及删除cookie值都是response对象的操作,而获取cooike是从request相应中获得的。

标签:请求,GET,--,响应,参数,提交,POST,1109
From: https://www.cnblogs.com/lxinghua/p/17425039.html

相关文章

  • SpringMVC响应json数据
    SpringMvc响应json数据@Controller@RequestMapping("/json")publicclassJsonController{@RequestMapping("/js1")@ResponseBody//响应json:将return的值作为文本响应给客户端,而不是转发到对应页面publicStringjs1(){System.out.println("js......
  • 5、请求伪造漏洞
    请求伪造漏洞:SSRF(服务器端请求伪造)、CSRF(跨站请求伪造)一、SSRF漏洞概念:攻击者构造形成由服务器端发起请求的一个安全漏洞,攻击目标是从外网无法访问的内部系统,可以对内外网或者本地进行端口扫描,某些情况下端口的Banner会回显出来(比如3306),使用file:///协议读取本地文件。首......
  • drf——反序列化校验源码(了解)、断言、drf之请求和响应、视图之两个视图基类
    1.模块与包#模块与包 模块:一个py文件被别的py文件导入使用,这个py文件称之为模块,运行的这个py文件称之为脚本文件包:一个文件夹下有__init__.py#模块与包的导入问题'''1.导入模块有相对导入和绝对导入,绝对导入的路径是从环境变量开始的2.导入任何模块,如果......
  • charles 选中某个请求后,下方不展示 response 小窗口
    今天使用charles抓包,选中某个请求后,发现下方只有Request窗口,并没有Response的窗口,发现需要点击Conent之后才能看到Response窗口......
  • 【JAVA】调用第三方接口发送request请求
    一、通过JDK网络类Java.net.HttpURLConnection通过统一资源定位器(java.net.URL)获取连接器(java.net.URLConnection)。设置请求的参数。发送请求。以输入流的形式获取返回内容。关闭输入流。 1、发送post请求packagecom.Run;importjava.io.*;importjava.net.HttpU......
  • ajax的几种请求方式
    1$.ajax({2type:'get',3url:'js/cuisine_area.josn',4async:true5})67//忽略返回值,传递参数8$.get('url',{name:'nihao'})910//有返回值,有参数11$.get('url',{name:'nihao'......
  • Android 教你一步步搭建MVP+Retrofit+RxJava网络请求框架
    1.什么是MVP? MVP(ModelViewPresenter)其实就是一种项目的整体框架,能让你的代码变得更加简洁,说起框架大家可能还会想到MVC、MVVM。由于篇幅原因,这里我们先不讲MVVM,先来看一下MVC。其实Android本身就采用的是MVC(ModelViewControllor)模式、其中Model指的是数据逻辑和实体模型......
  • 解决Anroid7.0以上版本无法抓取微信浏览器中Https请求
    为什么安卓7.0以上的系统,微信7.0版本以上无法抓取https包?原因:1.安卓7.0之后,提高了系统安全性。APP默认不信任用户域的证书2.微信7.0以后更新了安全机制,加入了防止中间人attack的机制详情可搜索sslpinning了解防止中间人attackSSLPinninghttps的网站使用使用伪证书可以抓到,但app......
  • 利用流来提高图片在服务器响应时间
    前面谈过如何巧用外部资源,尽可能减低服务器负载,CSS通过合并压缩,JS进行压缩小文件大小来加快服务器的响应的时间,在网站看到一篇用流的形式来加载图片,速度快上好几倍,采用MXHR技术,MXHR全称为MultipartXMLHttpRequest。它允许客户端只用一个HTTP请求就可以从服务端向客户端传送多......
  • jackson配置响应时间格式、时区(查询时间与当地时间不一致)
    配置文件:application.ymlspring:jackson:date-format:yyyy-MM-ddHH:mm:sstime-zone:GMT+8输出格式:yyyy-MM-ddHH:mm:ssGMT+8:就是格林威治标准时间的英文缩写(GreenwichMeanTime格林尼治标准时间),是世界标准时间.gmt+8是格林威治时间+8小时。中国所在时区就是......