Python Django框架单元测试之文件上传测试示例
作者:Lockeyi 时间:2022-02-26 23:50:51
本文实例讲述了Python Django框架单元测试之文件上传测试。分享给大家供大家参考,具体如下:
Submitting files is a special case. To POST a file, you need only provide the file field name as a key, and a file handle to the file you wish to upload as a value. For example:
>>> c = Client()
>>> with open('test.jpg') as fp:
... c.post('/account/avatar_upload/',{'avatar':fp})
测试文件上传其实没有什么特殊的,只需要指定后端接受请求数据的对应键值即可
(The name avatar here is not relevant; use whatever name your file-processing code expects.)在这里avatar是关联的,对应着具体的后端处理程序代码,eg:
class Useravatar(View):
def __init__(self):
self.thumbnail_dir = os.path.join(STATIC_ROOT, 'avatar/thumbnails')
self.dest_dir = os.path.join(STATIC_ROOT, 'avatar/origin_imgs')
@method_decorator(login_required)
def post(self, request):
nt_id = request.session.get('user_id', 'default')
user = User.objects.get(pk=nt_id) if User.objects.filter(pk=nt_id).exists() else None
avatarImg = request.FILES['avatar']
if not os.path.exists(self.dest_dir):
os.mkdir(self.dest_dir)
dest = os.path.join(self.dest_dir, nt_id+"_avatar.jpg")
with open(dest, "wb+") as destination:
for chunk in avatarImg.chunks():
destination.write(chunk)
if make_thumb(dest,self.thumbnail_dir):
avartaPath = os.path.join(STATIC_URL, 'avatar/thumbnails', nt_id + "_avatar.jpg")
else:
avartaPath = os.path.join(STATIC_URL, 'avatar/origin_imgs', nt_id + "_avatar.jpg")
User.objects.filter(nt_id=nt_id).update(avatar=avartaPath)
return render(request, 'profile.html', {'user': user})
希望本文所述对大家基于Django框架的Python程序设计有所帮助。
来源:https://blog.csdn.net/Lockey23/article/details/80653091
标签:Python,Django,单元测试,文件上传
0
投稿
猜你喜欢
Python hashlib加密模块常用方法解析
2022-03-11 05:20:05
源码编译安装MySQL8.0.20的详细教程
2024-01-22 11:55:52
利用Python绘制虎年烟花秀
2022-10-08 06:03:49
mysqlreport显示Com_中change_db占用比例高的问题的解决方法
2024-01-26 03:17:38
Python性能提升之延迟初始化
2021-05-23 14:22:06
使用Python轻松完成垃圾分类(基于图像识别)
2023-06-24 06:06:47
Python3几个常见问题的处理方法
2022-08-04 10:48:56
AjaxUpLoad.js实现文件上传
2024-05-11 09:42:07
SQL数据库连接超时时间已到的问题
2024-01-20 15:05:53
focus 进 textarea 元素后光标位置的修复
2008-09-27 13:27:00
Mysql中FIND_IN_SET()和IN区别简析
2024-01-23 12:12:04
利用python判断字母大小写的几种方法小结
2022-05-10 16:41:49
sqlserver 脚本和批处理指令小结
2012-05-22 18:56:55
PHP抽象工厂模式Abstract Factory Pattern优点与实现方式
2023-05-25 03:04:57
python实现图像识别功能
2023-08-09 08:45:00
python学生信息管理系统实现代码
2021-07-01 03:41:18
Python中的list.sort()方法和函数sorted(list)
2021-07-29 17:02:23
详解如何将python3.6软件的py文件打包成exe程序
2022-09-26 00:10:21
一个ASP.NET的MYSQL的数据库操作类自己封装的
2024-01-17 16:43:21
pygame编写音乐播放器的实现代码示例
2021-08-12 18:08:48