系列文章目录
系列文章目录
文章目录
前言
累了,没有前言
一、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慢,是你们都不会用,框架没有什么完美的框架,只是说适用的地方不同而已吧