第五章:django会话

系列文章目录

 系列文章目录

第一章 :Django安装与配置虚拟环境

第二章:django各模块的作用以及参数说明

第三章:  Django的路由与视图

第四章:django请求


文章目录

前言

一、json数据类型的获取与回复

1.解析接送数据

 2.响应接送数据

二、文件的上传

1.文件上传配置

2.单个文件的上传

总结


前言

累了,没有前言


一、json数据类型的获取与回复

1.解析接送数据

在之前一章就已经了解到json数据是存储在body里面,我们需要怎么去获取他,现在只需要去把json数据转换成为python数据,使用python解释器自带的json.loads()

def jsonres(res):
    json_data = res.body.decode()
    python_data = json.loads(json_data)
    print(python_data)
    print(type(python_data))
    return HttpResponse("收到")

效果

 2.响应接送数据

我们给客户端发发送response使用的django中封装好的HttpResponse,其实在django中还有好多别的响应方式,就比如继承自HttpResponse的JsonResponse,并且所有的Response都会继承自一个response的基类

我们进行json数据响应的时候就是使用JsonResponse,我们来试一下

def jsonres(res):
    json_data = res.body.decode()
    python_data = json.loads(json_data)
    print(python_data)
    print(type(python_data))
    data = {"vel": "服务器接收成功"}
    return JsonResponse(data=data)

 效果,data只能传入python中的字典,jsonResponse会进行处理成为json串

二、文件的上传

1.文件上传配置

使用场景:用户头像等信息的存储

我们需要去配置一个MEDIA_ROOT的参数,指定文件保存的路径

同时在根目录创建一个文件夹,在接收到前端发来的文件数据之后,就可以使用MEDIA_ROOT路径来保存文件

2.单个文件的上传

首先我们需要知道前端传过来的文件数据都是在哪里保存着的,

可以看到文件的信息是保存在了 一个叫FILES的变量里面,以字典的格式

我们来获取

def file(res):
    file = res.FILES['file']
    img_path = f'{settings.MEDIA_ROOT}/{file.name}'
    with open(img_path, 'wb') as f:
        for files in file.chunks():
            f.write(files)
    # status = 404响应状态码
    data = {"vel": "上传成功"}
    return JsonResponse(data=data)

效果

 

如果上传多个文件可以多次读取,也可以使用for循环来读取

def file(res):
    for file in res.FILES:
        # file = res.FILES['file']
        img_path = f'{settings.MEDIA_ROOT}/{file}'
        with open(img_path, 'wb') as f:
            for files in file.chunks():
                f.write(files)
        # status = 404响应状态码
    data = {"vel": "上传成功"}
    return JsonResponse(data=data)

 


总结

总有人说使用python部署服务器没有java的快,对于这个问题django创始人说过,不是python慢,是你们都不会用,框架没有什么完美的框架,只是说适用的地方不同而已吧

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

豪豪喜欢吃猪肉

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值