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操作MySQL数据库的方法分享
May 29 Python
全面解读Python Web开发框架Django
Jun 30 Python
更改Python命令行交互提示符的方法
Jan 14 Python
python使用正则表达式的search()函数实现指定位置搜索功能
Nov 10 Python
Python自动化运维_文件内容差异对比分析
Dec 13 Python
python+matplotlib绘制旋转椭圆实例代码
Jan 12 Python
使用python获取电脑的磁盘信息方法
Nov 01 Python
Python使用Opencv实现图像特征检测与匹配的方法
Oct 30 Python
使用python turtle画高达
Jan 19 Python
解决pyqt5异常退出无提示信息的问题
Apr 08 Python
Python任务调度模块APScheduler使用
Apr 15 Python
聊聊python中的循环遍历
Sep 07 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 session安全问题分析
2011/06/24 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
2015/04/01 PHP
php metaphone()函数的定义和用法
2016/05/15 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
2017/03/04 PHP
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
Jquery实现简单的动画效果代码
2012/03/18 Javascript
javascript写的一个模拟阅读小说的程序
2014/04/04 Javascript
JQuery 在线引用及测试引用是否成功
2014/06/24 Javascript
自制微信公众号一键排版工具
2016/09/22 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
关于Angularjs中自定义指令一些有价值的细节和技巧小结
2018/04/22 Javascript
Vue项目查看当前使用的elementUI版本的方法
2018/09/27 Javascript
Webpack5正式发布,有哪些新特性
2020/10/12 Javascript
浅谈JSON5解决了JSON的两大痛点
2020/12/14 Javascript
[37:35]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第二局
2016/02/25 DOTA
python BeautifulSoup设置页面编码的方法
2015/04/03 Python
Python做文本按行去重的实现方法
2016/10/19 Python
python的pandas工具包,保存.csv文件时不要表头的实例
2018/06/14 Python
Python实现的绘制三维双螺旋线图形功能示例
2018/06/23 Python
详解python实现识别手写MNIST数字集的程序
2018/08/03 Python
如何用C代码给Python写扩展库(Cython)
2019/05/17 Python
python DataFrame转dict字典过程详解
2019/12/26 Python
浅谈Python 函数式编程
2020/06/20 Python
处理HTML5新标签的浏览器兼容版问题
2017/03/13 HTML / CSS
HTML5的postMessage的使用手册
2018/12/19 HTML / CSS
全球领先美式家具品牌:Ashley爱室丽家居
2017/08/07 全球购物
中国包裹转运寄送国际服务:Famiboat
2019/07/24 全球购物
阿联酋手表和配饰购物网站:Rivolishop
2019/11/25 全球购物
销售人员获奖感言
2014/02/05 职场文书
学校万圣节活动方案
2014/02/13 职场文书
集体婚礼策划方案
2014/02/22 职场文书
2014年五一活动策划方案
2014/03/15 职场文书
2015医德医风个人工作总结
2015/04/02 职场文书
如何用threejs实现实时多边形折射
2021/05/07 Javascript
Redis Stream类型的使用详解
2021/11/11 Redis