Django-请求和响应

本文介绍了Django框架中的请求和响应处理。请求部分讲解了HttpRequest对象,包括其属性如GET、POST、COOKIES、FILES等,以及如何获取完整的请求路径。响应部分涉及常见的HTTP状态码,如200、301、302、404、500,并讨论了响应对象的构造和不同content-type的应用。最后提到了HttpRequest的子类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请求

请求的方法
序号方法描述
1GET请求指定的页面信息,并返回实体主体
2HEAD类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
3POST向指定资源提交数据进行处理请求(例如提交表单)。数据被包含在请求体中。POST请求可能导致新的资源的建立和/或已有资源的修改
4PUT从客户端向服务器传送的数据取代指定文档的内容
5DELETE请求服务器删除指定的页面
6CONNECTHTTP/1.1协议中预留给能够连接改为管道方式的代理服务器
7OPTIONS允许客户端查看服务器的性能
8TRACE回显服务器收到的请求, 主要用于测试或者诊断
HttpRequest对象

服务器接收到http协议的请求后,会根据报文创建HttpRequest对象,这个对象不需要我们创建,直接使用服务器构造好的对象就可以。视图的第一个参数必须是HttpRequest对象,在django.http模块中定义了HttpRequest对象的API。

属性:

  • path_info :URL字符串,表示请求的页面的完整路径,不包含域名和参数部分。
  • method:一个字符串,表示请求使用的HTTP方法,常用值包括:‘GET’、‘POST’。
    • 在浏览器中给出地址发出请求采用get方式,如超链接。
    • 在浏览器中点击表单的提交按钮发起请求,如果表单的method设置为post则为post请求。
  • GET:QueryDict类型对象,类似于字典,包含get请求方式的所有参数。
  • POST:QueryDict类型对象,类似于字典,包含post请求方式的所有参数。
  • FILES:一个类似于字典的对象,包含所有的上传文件。
  • COOKIES:一个标准的Python字典,包含所有的cookie,键和值都为字符串。
  • session:一个既可读又可写的类似于字典的对象,表示当前的会话,只有当Django 启用会话的支持时才可用。
  • body:字符串,请求体的内容(POST或PUT)
  • scheme: 请求协议(‘http’/‘https’)
  • get_full_path():请求的完整路径
  • META:请求中的元数据(消息头)
    • reques.META[‘REMOTE_ADDR’]:客户端IP地址
响应状态码

常见的:

  • 200 -请求成功
  • 301 - 永久重定向-资源(网页等)被永久转移到其他URL
  • 302 - 临时重定向
  • 404 - 请求的资源(网页等)不存在
  • 500 - 内部服务器错误
    http状态码类型:
分类分类描述
1**信息,服务器收到请求,需要请求者继续执行操作
2**成功,操作被成功接受并处理
3**重定向,需要进一步的操作以完成请求
4**客户端错误,请求包含语法错误或无法完成请求
5**服务器错误,服务器在处理请求的过程中发生了错误
响应对象

构造函数格式:

HttpResponse(content = 响应体, content_type =响应体数据类型 ,status = 状态码)

作用:向客户端浏览器返回响应,同时携带响应体内容

常见的content-type:

  • ‘text/html’ 默认的,HTML文件
  • ‘text/plain’ 纯文本
  • ‘text/css’ CSS文本
  • ‘text/javascript’ js文件
  • ‘multipart/form-data’ 文件提交
  • ‘application/json’ JSON传输
  • ‘application/xml’ xml文件
HttpRequest子类
类型作用状态码
HttpRequestRedirect重定向302
HttpRequestNotModified未修改304
HttpRequestBadRequest错误请求400
HttpRequestNotFound没有对应的资源404
HttpRequestForbidden请求被禁止403
HttpRequestServerError服务器错误500\
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值