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


Posted in Python onMay 17, 2019

本文实例讲述了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程序设计有所帮助。

Python 相关文章推荐
python根据路径导入模块的方法
Sep 30 Python
浅谈Python中的闭包
Jul 08 Python
python开发之IDEL(Python GUI)的使用方法图文详解
Nov 12 Python
详解Python字符串对象的实现
Dec 24 Python
Python基础学习之常见的内建函数整理
Sep 06 Python
python语音识别实践之百度语音API
Aug 30 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
Jul 28 Python
python使用requests.session模拟登录
Aug 09 Python
Python图像处理模块ndimage用法实例分析
Sep 05 Python
python3连接MySQL8.0的两种方式
Feb 17 Python
python中entry用法讲解
Dec 04 Python
python 实现图与图之间的间距调整subplots_adjust
May 21 Python
Python django框架应用中实现获取访问者ip地址示例
May 17 #Python
Python Django框架实现应用添加logging日志操作示例
May 17 #Python
Python实现通过解析域名获取ip地址的方法分析
May 17 #Python
如何用C代码给Python写扩展库(Cython)
May 17 #Python
python实现坦克大战游戏 附详细注释
Mar 27 #Python
六行python代码的爱心曲线详解
May 17 #Python
python使用pygame模块实现坦克大战游戏
Mar 25 #Python
You might like
Discuz!下Memcache缓存实现方法
2010/05/28 PHP
php数组函数序列之array_flip() 将数组键名与值对调
2011/11/07 PHP
fetchAll()与mysql_fetch_array()的区别详解
2013/06/05 PHP
php发送邮件的问题详解
2015/06/22 PHP
PHP实现动态添加XML中数据的方法
2018/03/30 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
国外Lightbox v2.03.3 最新版 下载
2007/10/17 Javascript
jsTree 基于JQuery的排序节点 Bug
2011/07/26 Javascript
js Event对象的5种坐标
2011/09/12 Javascript
jquery插件制作简单示例说明
2012/02/03 Javascript
js给onclick赋值传参数的两种方法
2013/11/25 Javascript
JavaScript动态设置div的样式的方法
2015/12/26 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
JS中图片压缩的方法小结
2017/11/14 Javascript
js时间戳与日期格式之间转换详解
2017/12/11 Javascript
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
关于layui 下拉列表的change事件详解
2019/09/20 Javascript
JsonProperty 的使用方法详解
2019/10/11 Javascript
JavaScript创建表格的方法
2020/04/13 Javascript
django如何连接已存在数据的数据库
2018/08/14 Python
使用django实现一个代码发布系统
2019/07/18 Python
Python matplotlib生成图片背景透明的示例代码
2019/08/30 Python
使用Matplotlib 绘制精美的数学图形例子
2019/12/13 Python
Python 获取命令行参数内容及参数个数的实例
2019/12/20 Python
日本土著品牌,综合型购物网站:Cecile
2016/08/23 全球购物
佛罗里达州印第安河新鲜水果:Hale Groves
2017/02/20 全球购物
运动会四百米广播稿
2014/01/19 职场文书
委托书范文
2014/04/02 职场文书
企业与个人合作经营协议书
2014/11/01 职场文书
《作风建设永远在路上》心得体会
2016/01/21 职场文书
《蜜蜂引路》教学反思
2016/02/22 职场文书
ThinkPHP5和ThinkPHP6的区别
2021/03/31 PHP
为什么mysql字段要使用NOT NULL
2021/05/13 MySQL
OpenCV-Python模板匹配人眼的实例
2021/06/08 Python
Python何绘制带有背景色块的折线图
2022/04/23 Python