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 相关文章推荐
简单的连接MySQL与Python的Bottle框架的方法
Apr 30 Python
使用Python对Access读写操作
Mar 30 Python
通过Python实现自动填写调查问卷
Sep 06 Python
Python探索之ModelForm代码详解
Oct 26 Python
tensorflow输出权重值和偏差的方法
Feb 10 Python
Python实现多级目录压缩与解压文件的方法
Sep 01 Python
Python 中list ,set,dict的大规模查找效率对比详解
Oct 11 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
Nov 27 Python
Win10环境中如何实现python2和python3并存
Jul 20 Python
Python绘图之二维图与三维图详解
Aug 04 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
Jan 29 Python
Python3利用openpyxl读写Excel文件的方法实例
Feb 03 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
上海地方志办公室-上海电子仪表工业志
2021/03/04 无线电
PHP脚本中include文件出错解决方法
2008/11/20 PHP
基于PHP Web开发MVC框架的Smarty使用说明
2013/04/19 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
2013/06/07 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
tp5框架使用cookie加密算法实现登录功能示例
2020/02/10 PHP
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
介绍JavaScript中Math.abs()方法的使用
2015/06/14 Javascript
js添加事件的通用方法推荐
2016/05/15 Javascript
jQuery.uploadify文件上传组件实例讲解
2016/09/23 Javascript
jQuery实现弹窗居中效果类似alert()
2017/02/27 Javascript
ES6新特性之解构、参数、模块和记号用法示例
2017/04/01 Javascript
JS实现验证码倒计时的注册页面
2018/01/02 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
2018/05/02 Javascript
详解Angular Karma测试的持续集成实践
2019/11/15 Javascript
vue+vant 上传图片需要注意的地方
2021/01/03 Vue.js
python多线程用法实例详解
2015/01/15 Python
在Python中用get()方法获取字典键值的教程
2015/05/21 Python
在Linux下使用Python的matplotlib绘制数据图的教程
2015/06/11 Python
python自动裁剪图像代码分享
2017/11/25 Python
python实现数据导出到excel的示例--普通格式
2018/05/03 Python
PyCharm 创建指定版本的 Django(超详图解教程)
2019/06/18 Python
python opencv实现证件照换底功能
2019/08/19 Python
python 数据提取及拆分的实现代码
2019/08/26 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
2019/12/12 Python
python mysql 字段与关键字冲突的解决方式
2020/03/02 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
详解HTML5中的元素与元素
2015/08/17 HTML / CSS
HTML5实现无刷新修改URL的方法
2019/11/14 HTML / CSS
Shopee新加坡:东南亚与台湾电商平台
2019/01/25 全球购物
GWT的应用有哪两种部署模式
2012/12/21 面试题
工程监理应届生求职信
2013/11/09 职场文书
北京申奥口号
2014/06/19 职场文书
竞聘自述材料
2014/08/25 职场文书
党员个人党性分析材料
2014/12/18 职场文书
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/07 PostgreSQL