Django之请求与响应

1、请求中的方法

根据HTTP 标准,HTTP 请求可以使用多种请求方法。

HTTP 1.0定义了三种请求方法:GET,POST和HEAD方法(最常用)
HTTP 1.1新增了五种请求方法:OPTIONS,PUT,DELETE,TRACE和CONNECT方法。

请求方法描述
get请求指定页面信息,并返回实体主体。
post向指定资源提交数据进行处理请求(例如提交表单或上传文件),数据包含在请求体中。post请求可能会导致新的资源的建立或已有资源的修改。
head类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头。
put从客户端向服务器传送的数据取代指定的文档的内容。
delete请求服务器删除指定的页面。
connectHTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
options允许客户端查看服务器的性能。
trace回显服务器收到的请求,主要用于测试或诊断。
2、Django中的请求
  1. 请求在django中实则就是视图函数的第一个参数,即HttpRequest 对象
  2. django接收到http协议的请求后,会根据请求数据报文创建HttpRequest 对象
  3. HttpRequest 对象 通过属性 描述了请求的所有相关信息
  • 属性和方法:
    path_info:url字符串
    method:字符串,表示HTTP方法,常用值:‘GET’,‘POST’
    GET:QueryDict查询字典的对象,包含get请求方式的所有数据
    POST:QueryDict查询字典的对象,包含post请求方式的所有数据
    FILES:类似字典的对象,包含所有的上传文件信息
    COOKIES:Python字典,包含所有的cookie,键和值都为字符串
    session:类似于字典的对象,表示当前的会话
    body:字符串,包含请求体的内容(POST请求或PUT请求)
    scheme:请求协议(‘http’或者’https’)
    request.get_full_path(): 请求的完整路径
    request.META: 请求中的元数据(消息头)
    客户端IP地址 request.META[‘REMOTE_ADDR’
urls.py中
path('test_request',views.test_request)
 
views.py中
def test_request(request):
    print('path info is:',request.path_info)
    print('method is', request.method)
    print('querystring is',request.GET)
    return HttpResponse('test request ok')
 
终端输出:
path info is: /test_request
method is GET
querystring is <QueryDict: {'a': ['1'], 'b': ['2']}>
[06/Aug/2021 06:55:15] "GET /test_request?a=1&b=2 HTTP/1.1" 200 15
3、响应状态
  • http协议常用的状态码
    200: 请求成功;OK
    301: 永久重定向-资源(网页等)被永久转移到其他URL
    302: 临时重定向
    404: 服务器无法找到客户端请求的资源;Not Found
    500: 服务器内部错误;Internal Server Error
  • http协议状态码分类
    1xx:100-101 信息提示
    2xx:200-206 成功
    3xx:300-307 重定向
    4xx:400-415 错误类信息,客户端错误
    5xx:500-505 错误类信息,服务器端错误
4、Django中响应对象
  • 构造函数格式:
    HttpResponse(content=响应体,content-type=响应体数据类型,status=状态码)
  • 作用:向客户浏览器返回响应,同时携带响应体内容
  • 常用的content-type如下:
    -‘text/html’(默认的,html文件)
    -’text/plain’(纯文本)
    -‘text/css’(纯文件)
    -’multipart/form-data’(文件提交)
    -‘application/json’(json传输)
    -’application/xml’(xml传输)
  • HttpResponse子类
类名描述
HttpResponseRedirect构造函数的参数有一个:重定向的路径。 状态码 302。
HttpResponseNotModified构造函数没有任何参数。用它来表示这个页面在上次请求后未改变。
HttpResponseBadRequest错误请求,状态码 400。
HttpResponseNotFound没有对应的资源,状态码 404。
HttpResponseForbidden请求被禁止,状态码403。
HttpResponseServerError服务器错误,状态码500
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值