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制作CSDN免积分下载器
Mar 10 Python
Python简单生成8位随机密码的方法
May 24 Python
python爬虫框架talonspider简单介绍
Jun 09 Python
Python Socket实现简单TCP Server/client功能示例
Aug 05 Python
python递归实现快速排序
Aug 18 Python
python 数据生成excel导出(xlwt,wlsxwrite)代码实例
Aug 23 Python
python+pygame实现坦克大战
Sep 10 Python
python 画3维轨迹图并进行比较的实例
Dec 06 Python
python标准库OS模块函数列表与实例全解
Mar 10 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
Jul 14 Python
用python爬虫批量下载pdf的实现
Dec 01 Python
Python几种酷炫的进度条的方式
Apr 11 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
Windows PHP5和Apache的安装与配置
2009/06/08 PHP
PHP数据类型之整数类型、浮点数的介绍
2013/04/28 PHP
thinkphp框架下实现登录、注册、找回密码功能
2016/04/06 PHP
PHP表单数据写入MySQL数据库的代码
2016/05/31 PHP
ThinkPHP3.2.3实现分页的方法详解
2016/06/03 PHP
Jquery为单选框checkbox绑定单击click事件
2012/12/18 Javascript
Javascript中innerHTML用法实例分析
2015/01/12 Javascript
浅谈javascript 迭代方法
2015/01/21 Javascript
Node.js中的缓冲与流模块详细介绍
2015/02/11 Javascript
深入浅出理解javaScript原型链
2015/05/09 Javascript
基于js实现投票的实例代码
2015/08/04 Javascript
谈一谈javascript中继承的多种方式
2016/02/19 Javascript
javascript日期比较方法实例分析
2016/06/17 Javascript
详解JavaScript的内置对象
2016/12/07 Javascript
nodejs实现连接mongodb数据库的方法示例
2018/03/15 NodeJs
浅谈Postman解决token传参的问题
2018/03/31 Javascript
Angular父子组件通过服务传参的示例方法
2018/10/31 Javascript
手挽手带你学React之React-router4.x的使用
2019/02/14 Javascript
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
2019/04/29 Javascript
[01:08]DOTA2次级职业联赛 - Wings 战队宣传片
2014/12/01 DOTA
python与php实现分割文件代码
2017/03/06 Python
Python深度优先算法生成迷宫
2018/01/22 Python
使用Python OpenCV为CNN增加图像样本的实现
2019/06/10 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
2019/08/12 Python
wxPython实现文本框基础组件
2019/11/18 Python
python通过安装itchat包实现微信自动回复收到的春节祝福
2020/01/19 Python
python 列表推导和生成器表达式的使用
2021/02/01 Python
Ralph Lauren法国官网:美国高品味时装品牌
2017/12/08 全球购物
美国农场商店:Blain’s Farm & Fleet
2020/01/17 全球购物
Ajxa常见问题都有哪些
2014/03/26 面试题
财务会计毕业生个人求职信
2014/02/03 职场文书
年终总结会主持词
2014/03/25 职场文书
行政内勤岗位职责
2014/04/07 职场文书
优秀教师自我评价范文
2014/09/27 职场文书
win10电脑右下角输入法图标不见了?Win10右下角不显示输入法的解决方法
2022/07/23 数码科技