服务器怎么延迟响应post,Request & Response 请求和响应

1. 请求 request

1.1 HttpRequest 定义

服务器在接收到http请求后,会根据报文创建HttpRequest对象

视图中第一个参数就是HttpRequest对象

Django框架会进行自己的包装,之后传递给视图

属性:

path 请求的完整路径

method 请求的方法,通常get,post

Encoding 编码方式,常用utf-8

Get 类似字典的参数,包含了get的所有参数

post 类似字典的参数,包含了post的所有参数

Files 类似字典的参数,包含了上传的文件

Cookies 字典,包含了所有的COOKIES

Session 类似字典,表示会话

方法: is_ajax() 判断是否是ajax(),通常在移动端和js中

2. GET 和 POST的区别

HTTP: get请求 request.GET

HTTP: post请求 request.POST

url中?后面的内容(get) 不同浏览器对长度有限制 几千到几万bites不等

request.method == 'GET' / 'POST'

GET

POST

后退按钮/刷新

无害

数据会被重新提交(浏览器应该告知用户数据会被重新提交)。

书签

可收藏为书签

不可收藏为书签

缓存

能被缓存

不能缓存

编码类型

application/x-www-form-urlencoded

application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。

历史

参数保留在浏览器历史中。

参数不会保存在浏览器历史中。

对数据长度的限制

是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。

无限制。

对数据类型的限制

只允许 ASCII 字符。

没有限制。也允许二进制数据。

安全性

与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。在发送密码或其他敏感信息时绝不要使用 GET !

POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。

可见性

数据在 URL 中对所有人都是可见的。

数据不会显示在 URL 中。

2.响应 response

2.2 响应的QueryDict类型

1)类似字典的结构数据,与字典的区别,可以存在相同的键

2)GET和POST都是QueryDict对象

3)QueryDict中数据获取方式

dict[‘name’] 或者dict.get(‘name’)

获取指定key对应的所有值

dict.getlist(‘name’)

2.3 响应

1)可以直接返回一个HttpResponse对象:

服务器返回给客户端的数据,HttpResponse由程序员自己创建

不使用模板,直接HttpResponse()

2)可以返回模板

调用模板,进行渲染,直接使用render一步到位

返回表达式:

render(request, template_name, context)

request 请求体对象

template_name 模板路径

context 字典参数,用来填坑

3)属性

Content 返回的内容

Charset 编码格式

status_code 响应状态码(200,4xx,5xx)

4xx 客户端的错误

5xx 服务端的错误

content_type MIME类型,定义传输类型的,比如有xml,html,png等等,比如content_type=’image/jpg’

4)方法

init 初始化内容

write(xxx) 直接写到文本

flush 冲刷缓冲区

set_cookie(key, value=’’, max_age=None, exprise=None)

delete_cookie(key) 删除cookie,上面是设置

4)重定向

导入方法 : from django.http import HttpResponseRedirect

HttpResponseRedirect响应重定向:可以实现服务器内部的跳转

Return HttpResponseRedirect(‘/xxx/xxx’)

使用的时候推荐使用反向解析reverse :

from django.urls import reverse

return HttpResponseRedirect(reverse('backweb:index'))

JsonResponse

使用json数据的请求,通常用在异步请求上jsonResponse(dict)

content_type是application/json

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值