Django基础教程(102)Django请求和响应之Response对象:别让请求傻等!Django Response对象:你的视图“会说话”的艺术

深度分析Django基础教程之Django请求和响应之Response对象

嘿,Django侠客们!今天咱们不聊宏大的架构,也不扯复杂的模型,就来深入唠一唠那个你每天都在用,但可能从未真正“看透”的伙计——Response对象

想象一下这个场景:你走进一家餐厅(你的网站),对服务员(Django)说:“嘿,给我来份宫保鸡丁,多加花生!”(这就是一个HTTP请求)。后厨(你的视图函数)一阵叮当乱响,把菜给你做好了。那么问题来了,这盘菜怎么端到你面前?是用精致的盘子?还是直接用锅?或者服务员跑过来说:“先生,宫保鸡丁卖完了,要不您试试我们的水煮鱼?”(这就是重定向)。

这个“端菜”的动作,在Django世界里,就是Response对象的使命。 它决定了数据以何种姿态、何种格式呈现在用户的浏览器上。今天,我们就来把这个“端菜艺术”扒得底裤都不剩!

第一章:Response家族“全家福”——不止一个“回”字

很多人以为,视图函数里返回个字符串就行了。Too young, too simple! Django为我们准备了一整套“ Response 全家桶”,各有各的妙用。

1. 老大哥:HttpResponse——最基础的“白盘子”

这是所有Response的根基,最直接,也最灵活。它的工作就是:给你一块白板,你爱写啥写啥。

from django.http import HttpResponse

def my_view(request):
    # 最简单的,返回一段文本
    return HttpResponse("欢迎来到我的小吃摊!")

    # 你甚至可以手动设置状态码,比如玩个彩蛋
    # return HttpResponse("页面飞走了~", status=404)

核心技能点:

  • content: 响应的内容,可以是字符串,也可以是字节数据。
  • status: HTTP状态码。200(成功)、404(找不到)、500(服务器错误)……全凭你指挥。
  • content_type: 告诉浏览器“我端上来的是什么菜”。默认为 'text/html',你还可以设为 'text/plain'(纯文本)、'application/json'(JSON数据)等。

适用场景: 当你需要完全掌控输出内容,或者返回非HTML内容(比如CSV文件、纯文本协议)时,老大哥就该出场了。

2. 文艺青年:JsonResponse——专供API的“精致摆盘”

现在是前后端分离的时代,前端动不动就跟你耍JSON。每次都手动 json.dumps() 再设置 content_type 也太麻烦了!于是,JsonResponse这位文艺青年闪亮登场。

from django.http import JsonResponse

def api_view(request):
    data = {
        'name': '阿D',
        'age': 18,
        'hobbies': ['coding', 'reading', 'sleeping']
    }
  
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值