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})

Python Django框架单元测试之文件上传测试示例

希望本文所述对大家基于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
  • asp之家 网络编程 m.aspxhome.com