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实现的防DDoS脚本
Feb 08 Python
通过mod_python配置运行在Apache上的Django框架
Jul 22 Python
浅谈Python中的可变对象和不可变对象
Jul 07 Python
Python中对数组集进行按行打乱shuffle的方法
Nov 08 Python
解决pycharm的Python console不能调试当前程序的问题
Jan 20 Python
Python猴子补丁知识点总结
Jan 05 Python
python实现将列表中各个值快速赋值给多个变量
Apr 02 Python
在keras 中获取张量 tensor 的维度大小实例
Jun 10 Python
python实现粒子群算法
Oct 15 Python
Python实现Word文档转换Markdown的示例
Dec 22 Python
plt.figure()参数使用详解及运行演示
Jan 08 Python
python3实现无权最短路径的方法
May 12 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中的print_r 与 var_dump 输出数组
2016/06/13 PHP
Javascript动态绑定事件的简单实现代码
2010/12/25 Javascript
根据json字符串生成Html的一种方式
2013/01/09 Javascript
JS获取html对象的几种方式介绍
2013/12/05 Javascript
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
2014/08/04 Javascript
Javascript中的默认参数详解
2014/10/22 Javascript
预防网页挂马的方法总结
2016/11/03 Javascript
jQuery模拟12306城市选择框功能简单实现方法示例
2018/08/13 jQuery
浅析js中mvvm模式实现的原理
2018/10/06 Javascript
详解如何搭建mpvue框架搭配vant组件库的小程序项目
2019/05/16 Javascript
java实现单链表增删改查的实例代码详解
2019/08/30 Javascript
微信小程序实现选择地址省市区三级联动
2020/06/21 Javascript
JS中锚点链接点击平滑滚动并自由调整到顶部位置
2021/02/06 Javascript
[02:28]DOTA2英雄基础教程 狼人
2013/12/23 DOTA
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
python实现将pvr格式转换成pvr.ccz的方法
2015/04/28 Python
基于Python实现一个简单的银行转账操作
2016/03/06 Python
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
Python操作Sql Server 2008数据库的方法详解
2018/05/17 Python
详解Python安装tesserocr遇到的各种问题及解决办法
2019/03/07 Python
结合OpenCV与TensorFlow进行人脸识别的实现
2019/10/10 Python
Python类如何定义私有变量
2020/02/03 Python
python线程里哪种模块比较适合
2020/08/02 Python
在什么时候需要使用"常引用"
2015/12/31 面试题
阿里巴巴Oracle DBA笔试题答案-备份恢复类
2013/11/20 面试题
事业单位接收函
2014/01/10 职场文书
农民致富事迹材料
2014/01/23 职场文书
电气自动化个人求职信范文
2014/02/03 职场文书
艾滋病宣传标语
2014/06/25 职场文书
暑期培训心得体会
2014/09/02 职场文书
交通事故委托书范本
2014/09/28 职场文书
公司致全体员工的感谢信
2019/06/24 职场文书
数据库的高级查询六:表连接查询:外连接(左外连接,右外连接,UNION关键字,连接中ON与WHERE的不同)
2021/04/05 MySQL
pytorch 如何使用float64训练
2021/05/24 Python
Java实现HTML转为Word的示例代码
2022/06/28 Java/Android