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中动态获取对象的属性和方法的教程
Apr 09 Python
python使用socket连接远程服务器的方法
Apr 29 Python
Python编程之event对象的用法实例分析
Mar 23 Python
Python实现的拉格朗日插值法示例
Jan 08 Python
Python 中 -m 的典型用法、原理解析与发展演变
Nov 11 Python
解决Tensorflow 使用时cpu编译不支持警告的问题
Feb 03 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
Feb 26 Python
python GUI库图形界面开发之PyQt5计数器控件QSpinBox详细使用方法与实例
Feb 28 Python
在PyTorch中使用标签平滑正则化的问题
Apr 03 Python
python高级特性简介
Aug 13 Python
15款Python编辑器的优缺点,别再问我“选什么编辑器”啦
Oct 19 Python
Python实现简繁体转换
Jun 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编码规范-php coding standard
2007/03/16 PHP
在命令行下运行PHP脚本[带参数]的方法
2010/01/22 PHP
PHP Undefined index报错的修复方法
2011/07/17 PHP
浅析ThinkPHP中execute和query方法的区别
2014/06/13 PHP
php开发中的页面跳转方法总结
2015/04/26 PHP
基于Laravel-admin 后台的自定义页面用法详解
2019/09/30 PHP
JS查看对象功能代码
2008/04/25 Javascript
基于Jquery实现表格动态分页实现代码
2011/06/21 Javascript
javascript开发技术大全-第1章javascript概述
2011/07/03 Javascript
JS修改css样式style浅谈
2013/05/06 Javascript
jQuery使用hide方法隐藏指定元素class样式用法实例
2015/03/30 Javascript
PHP+mysql+Highcharts生成饼状图
2015/05/04 Javascript
jQuery使用$.ajax进行即时验证实例详解
2015/12/11 Javascript
浅析Bootstrap验证控件的使用
2016/06/23 Javascript
AngularJS 2.0入门权威指南
2016/10/08 Javascript
利用vue-router实现二级菜单内容转换
2016/11/30 Javascript
javascript事件的传播基础实例讲解(35)
2017/02/14 Javascript
JavaScript中call和apply方法的区别实例分析
2018/08/03 Javascript
前端防止用户重复提交js实现代码示例
2018/09/07 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
2018/11/23 Javascript
JavaScript学习笔记之数组基本操作示例
2019/01/09 Javascript
VUE 实现复制内容到剪贴板的两种方法
2019/04/24 Javascript
js实现移动端吸顶效果
2020/01/08 Javascript
JavaScript中数组去重的5种方法
2020/07/04 Javascript
结合axios对项目中的api请求进行封装操作
2020/09/21 Javascript
python调用java的jar包方法
2018/12/15 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
wxPython绘图模块wxPyPlot实现数据可视化
2019/11/19 Python
html2 canvas生成清晰的图片实现打印功能
2019/09/23 HTML / CSS
家长评语和期望
2014/02/10 职场文书
预备党员承诺书
2014/03/25 职场文书
祖国在我心中演讲稿500字
2014/05/04 职场文书
酒店餐厅2014重阳节活动策划方案
2014/09/16 职场文书
2014年共青团工作总结
2014/12/10 职场文书
2015年收银工作总结范文
2015/04/01 职场文书
python3 字符串str和bytes相互转换
2022/03/23 Python