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深入学习之对象的属性
Aug 31 Python
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
Nov 08 Python
python opencv之SURF算法示例
Feb 24 Python
python自动重试第三方包retrying模块的方法
Apr 24 Python
Django组件cookie与session的具体使用
Jun 05 Python
python求平均数、方差、中位数的例子
Aug 22 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
Oct 25 Python
python多进程重复加载的解决方式
Dec 13 Python
详解PyQt5信号与槽的几种高级玩法
Mar 24 Python
Python利用命名空间解析XML文档
Aug 10 Python
Python爬虫之Selenium库的使用方法
Jan 03 Python
python机器学习创建基于规则聊天机器人过程示例详解
Nov 02 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
谈谈PHP语法(4)
2006/10/09 PHP
php简单的会话类代码
2011/08/08 PHP
PHP If Else(elsefi) 语句
2013/04/07 PHP
深入探究PHP的多进程编程方法
2015/08/18 PHP
学习php设计模式 php实现备忘录模式(Memento)
2015/12/09 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
2017/11/24 PHP
jquery实现ajax提交form表单的方法总结
2014/03/03 Javascript
JS中判断null、undefined与NaN的方法
2014/03/26 Javascript
jQuery截取指定长度字符串的实现原理及代码
2014/07/01 Javascript
js实现仿阿里巴巴城市选择框效果实例
2015/06/24 Javascript
微信小程序开发animation心跳动画效果
2017/08/16 Javascript
微信小程序radio组件使用详解
2018/01/31 Javascript
Vue项目全局配置微信分享思路详解
2018/05/04 Javascript
layui使用label标签的方法
2019/09/14 Javascript
d3.js实现图形拖拽
2019/12/19 Javascript
微信小程序实现导航栏和内容上下联动功能代码
2020/06/29 Javascript
Python抽象类的新写法
2015/06/18 Python
python的else子句使用指南
2016/02/27 Python
Python实现的弹球小游戏示例
2017/08/01 Python
python PyTorch参数初始化和Finetune
2018/02/11 Python
对numpy和pandas中数组的合并和拆分详解
2018/04/11 Python
python实现机器学习之元线性回归
2018/09/06 Python
python数据挖掘需要学的内容
2019/06/23 Python
浅谈对pytroch中torch.autograd.backward的思考
2019/12/27 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
2020/09/20 Python
python GUI计算器的实现
2020/10/09 Python
python 实现弹球游戏的示例代码
2020/11/17 Python
前端制作动画的几种方式(css3,js)
2016/12/12 HTML / CSS
关于CSS Tooltips(鼠标经过时显示)的效果
2013/04/10 HTML / CSS
城市轨道交通工程职业规划书范文
2014/01/18 职场文书
学习2014年全国两会心得体会
2014/03/12 职场文书
2014年教师党员公开承诺书
2014/05/28 职场文书
大学生学习新党章思想汇报
2014/10/25 职场文书
总经理助理岗位职责
2015/01/31 职场文书
保姆聘用合同
2015/09/21 职场文书
python游戏开发之pygame实现接球小游戏
2022/04/22 Python