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的lambda匿名函数的简单介绍
Apr 25 Python
python计算最小优先级队列代码分享
Dec 18 Python
Python入门篇之字符串
Oct 17 Python
Python标准库之多进程(multiprocessing包)介绍
Nov 25 Python
python实现基于两张图片生成圆角图标效果的方法
Mar 26 Python
python根据出生日期获得年龄的方法
Mar 31 Python
详解python3中zipfile模块用法
Jun 18 Python
django 中QuerySet特性功能详解
Jul 25 Python
python matplotlib如何给图中的点加标签
Nov 14 Python
TensorFlow实现checkpoint文件转换为pb文件
Feb 10 Python
PyQt5 控件字体样式等设置的实现
May 13 Python
Python调用C语言程序方法解析
Jul 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 fopen()和 file_get_contents()应用与差异介绍
2014/03/19 PHP
PHP获取ip对应地区和使用网络类型的方法
2015/03/11 PHP
Laravel修改验证提示信息为中文的示例
2019/10/23 PHP
js获取和设置属性的方法
2014/02/20 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
2015/06/05 Javascript
JQuery实现的图文自动轮播效果插件
2015/06/19 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
2016/02/25 Javascript
Select下拉框模糊查询功能实现代码
2016/07/22 Javascript
Bootstrap树形菜单插件TreeView.js使用方法详解
2016/11/01 Javascript
AngularJS指令与控制器之间的交互功能示例
2016/12/14 Javascript
关于Node.js的events.EventEmitter用法介绍
2017/04/01 Javascript
JS中判断某个字符串是否包含另一个字符串的五种方法
2018/05/03 Javascript
js实现拖动缓动效果
2020/01/13 Javascript
js实现简单进度条效果
2020/03/25 Javascript
Element Steps步骤条的使用方法
2020/07/26 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
2020/11/27 Vue.js
python中urlparse模块介绍与使用示例
2017/11/19 Python
Django中使用celery完成异步任务的示例代码
2018/01/23 Python
python spyder中读取txt为图片的方法
2018/04/27 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
2019/04/27 Python
使用python 写一个静态服务(实战)
2019/06/28 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
2020/05/26 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
Python Pillow(PIL)库的用法详解
2020/09/19 Python
python爬虫中采集中遇到的问题整理
2020/11/27 Python
HTML5 CSS3给网站设计带来出色效果
2009/07/16 HTML / CSS
英国儿童设计师服装和玩具购物网站:Zac & Lulu
2020/10/19 全球购物
逻辑链路控制协议
2016/10/01 面试题
给交警的表扬信
2014/01/12 职场文书
自荐信如何制作?
2014/02/21 职场文书
2014学雷锋活动总结
2014/03/09 职场文书
党员国庆节演讲稿范文2014
2014/09/21 职场文书
机关干部四风问题自我剖析及整改措施
2014/10/26 职场文书
Mysql案例刨析事务隔离级别
2021/09/25 MySQL
JavaScript组合继承详解
2021/11/07 Javascript
Win11运行育碧游戏总是崩溃怎么办 win11玩育碧游戏出现性能崩溃的解决办法
2022/04/06 数码科技