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中urllib2模块的8个使用细节分享
Jan 01 Python
使用Python编写一个在Linux下实现截图分享的脚本的教程
Apr 24 Python
python通过ftplib登录到ftp服务器的方法
May 08 Python
Python利用正则表达式匹配并截取指定子串及去重的方法
Jul 30 Python
Java多线程编程中ThreadLocal类的用法及深入
Jun 21 Python
python在每个字符后添加空格的实例
May 07 Python
使用Python实现一个栈判断括号是否平衡
Aug 23 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
Dec 12 Python
python使用多线程编写tcp客户端程序
Sep 02 Python
python基于socket实现的UDP及TCP通讯功能示例
Nov 01 Python
Tensorflow实现多GPU并行方式
Feb 03 Python
python3 循环读取excel文件并写入json操作
Jul 14 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
合作指挥官:孟斯克
2020/03/16 星际争霸
php实现文件管理与基础功能操作
2017/03/21 PHP
PHP实现的简单sha1加密功能示例
2017/08/27 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
Referer原理与图片防盗链实现方法详解
2019/07/03 PHP
详细分析PHP 命名空间(namespace)
2020/06/30 PHP
关于__defineGetter__ 和__defineSetter__的说明
2007/05/12 Javascript
jQuery学习笔记之jQuery选择器的使用
2010/12/22 Javascript
javascript数组的使用
2013/03/28 Javascript
获取内联和链接中的样式(js代码)
2013/04/11 Javascript
js菜单点击显示或隐藏效果的简单实例
2014/01/13 Javascript
JavaScript异步编程Promise模式的6个特性
2014/04/03 Javascript
使用JavaScript的ActiveXObject对象检测应用程序是否安装的方法
2014/04/15 Javascript
用jquery.sortElements实现table排序
2014/05/04 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
Angular.js实现获取验证码倒计时60秒按钮的简单方法
2017/10/18 Javascript
JS中数据结构之栈
2019/01/01 Javascript
JS严格模式原理与用法实例分析
2020/04/27 Javascript
微信小程序自定义顶部组件customHeader的示例代码
2020/06/03 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
2020/08/25 Javascript
Python实现的简单万年历例子分享
2014/04/25 Python
跟老齐学Python之模块的加载
2014/10/24 Python
学习python之编写简单简单连接数据库并执行查询操作
2016/02/27 Python
Python下实现的RSA加密/解密及签名/验证功能示例
2017/07/17 Python
Python实现的求解最小公倍数算法示例
2018/05/03 Python
django进阶之cookie和session的使用示例
2018/08/17 Python
ubuntu上安装python的实例方法
2019/09/30 Python
波比布朗英国官网:Bobbi Brown英国
2017/11/13 全球购物
For Art’s Sake官网:手工制作的奢华眼镜
2018/12/15 全球购物
园林技术个人的自我评价
2014/01/08 职场文书
保险公司开门红口号
2014/06/21 职场文书
树转促学习心得体会
2014/09/10 职场文书
赔偿协议书
2015/01/27 职场文书
辞职信格式模板
2015/02/27 职场文书
生活小常识广播稿
2015/08/19 职场文书
springboot利用redis、Redisson处理并发问题的操作
2021/06/18 Java/Android