Django-4-请求及响应

概述-什么是请求及响应

浏览器(或者客户端)在访问网址的时候实际上是不断的与网页服务器后台进行数据通信,显而易见的是必然包含两个过程:

  • 第一,浏览器向服务器发送数据,此即请求
  • 第二,服务器接收请求后做相应处理后再返回给浏览器内容,此为响应
  • 这些通信必须要有统一的规则,建立在一定的协议上,即http/https,为了数据安全https协议对传输数据进行了加密

请求

请求内容包含三部分:

  • 1.起始行,请求方法(GET,POST等),路由地址,网络协议
  • 2.头部(headers):键值对形式,包含host,user-agent,语言等
  • 3.主体(body):提交的表单、用户名,密码等
    在这里插入图片描述
  • 请求方法
方法作用
GET浏览器请求指定页面信息,并返回网页主体
POST向服务器提交表单、上传文件等,可能会导致新的资源建立或者已有资源的修改
HEAD类似GET,只获得头部信息,常用于调试
PUT替换服务器指定文档内容
DELETE删除指定页面
  • 在Django的使用
    请求在Django中实际上是视图函数的第一个参数request,即HttpRequest对象,常用request属性:
    path_info: 请求路由地址
    method: 请求方法
    GET: QueryDict类查询字典,包含GET请求的所有数据
    POST: QueryDict类查询字典,包含POST请求的所有数据
    FILES: 类似字典对象,包含上传文件的信息
    写在视图函数:
def home(r):

    print('r.path_info is %s\nr.method is %s\n' % (r.path_info, r.method))
    print('r.get is %s\n r.post is %s\nr.files is %s' %
          (r.GET, r.POST, r.FILES))
    print('r.cookies is %s \n r.sessions is %s\nr.scheme is %s\n r.body is %s' %
          (r.COOKIES, r.session, r.scheme, r.body))
    print('full path is %s\nip is %s' %
          (r.get_full_path(), r.META['REMOTE_ADDR'])) # 获得完整请求路径以及浏览器ip
    return HttpResponse('Test ok')

在浏览器输入http://127.0.0.1:8000/home?a=1&b=1
将在VS中端看到:

r.get is <QueryDict: {'a': ['1'], 'b': ['1']}>
 r.post is <QueryDict: {}>
r.files is <MultiValueDict: {}>
r.cookies is {}
 r.sessions is <django.contrib.sessions.backends.db.SessionStore object at 0x0000018C992A8700>
r.scheme is http
 r.body is b''
full path is /home?a=1&b=1
ip is 127.0.0.1
[06/Jul/2021 11:26:01] "GET /home?a=1&b=1 HTTP/1.1" 200 7

响应

同样包含三部分,第一行包含协议,返回响应状态码,描述;头部包括时间、服务器信息等,主体则是
在这里插入图片描述

  • 常见响应状态码
    200,成功
    301,永久重定向
    302,临时重定向
    404,访问资源不存在
    500,服务器错误
  • Django 响应对象HttpResponse
  • 函数格式:HttpResponse(content = 响应体, content_type = 响应体类型, status = 状态码)
  • content-type包含:
content_type描述
text/html默认,html文件
text/plain纯文本文件
text/csscss文件
text/javascriptjs文件
multipart/form-data文件提交
application/jsonjson文件
application/xmlxml文件
  • 响应子类
    在这里插入图片描述

参考

达内教育

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值