django将网络中的图片,保存成model中的ImageField的实例


Posted in Python onAugust 07, 2019

有这样的情形,django个人头像在model中是:

class UserProfile(AbstractUser):
 """
 用户
 """
 name = models.CharField(max_length=30, null=True, blank=True, verbose_name="姓名")
 image = models.ImageField(max_length=1000,upload_to='avatar/%Y/%m/', verbose_name=u'头像', null=True, blank=True)

正常情况下,需要客户端(app或者浏览器post上来图片,然后保存到image中)

例如:

image = request.data.get('image', None)
...
user.image=image
user.save()

但是,有这样的情况,如果是第三方,例如微博登录,前端通过微博接口获取到微博头像,post上来的就是头像的地址,https://xxx.xxx.jpg

这个时候如何通过图片url,保存到django的model中呢?

思路是,先通过url下载图片,然后保存

from django.core.files import File
from io import BytesIO
from urllib.request import urlopen
 
url = request.data.get('image', None)
r = urlopen(url)
io = BytesIO(r.read())
user.image.save("{}_{}.jpg".format(user.id,int(time.time())), File(io))

以上这篇django将网络中的图片,保存成model中的ImageField的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python描述器descriptor详解
Feb 03 Python
python使用PyGame模块播放声音的方法
May 20 Python
python xml解析实例详解
Nov 14 Python
使用python实现个性化词云的方法
Jun 16 Python
Python之Scrapy爬虫框架安装及使用详解
Nov 16 Python
python实现图书管理系统
Mar 12 Python
pyhton列表转换为数组的实例
Apr 04 Python
pycharm内无法import已安装的模块问题解决
Feb 12 Python
python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例
Feb 27 Python
Python Django中间件使用原理及流程分析
Jun 13 Python
keras自定义损失函数并且模型加载的写法介绍
Jun 15 Python
pytorch查看网络参数显存占用量等操作
May 12 Python
Python学习笔记之文件的读写操作实例分析
Aug 07 #Python
详解python中__name__的意义以及作用
Aug 07 #Python
Pandas0.25来了千万别错过这10大好用的新功能
Aug 07 #Python
Python编程学习之如何判断3个数的大小
Aug 07 #Python
Python使用import导入本地脚本及导入模块的技巧总结
Aug 07 #Python
python可视化篇之流式数据监控的实现
Aug 07 #Python
Python+AutoIt实现界面工具开发过程详解
Aug 07 #Python
You might like
php socket通信(tcp/udp)实例分析
2016/02/14 PHP
extJs 常用到的增,删,改,查操作代码
2009/12/28 Javascript
JavaScript中的Array对象使用说明
2011/01/17 Javascript
JavaScript判断一个URL链接是否有效的实现方法
2011/10/08 Javascript
js获取IP和PcName(IE)在vs中可用
2013/08/02 Javascript
鼠标移到图片上变大显示而不是放大镜效果
2014/06/15 Javascript
理解javascript模块化
2016/03/28 Javascript
深入理解JavaScript中的对象复制(Object Clone)
2016/05/18 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
js获取当前时间(昨天、今天、明天)
2016/11/23 Javascript
html5+CSS 实现禁止IOS长按复制粘贴功能
2016/12/28 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
vue中axios解决跨域问题和拦截器的使用方法
2018/03/07 Javascript
利用Bootstrap Multiselect实现下拉框多选功能
2019/04/08 Javascript
微信小程序用户授权、位置授权及获取微信绑定手机号
2019/07/18 Javascript
js中比较两个对象是否相同的方法示例
2019/09/02 Javascript
javascript中闭包closure的深入讲解
2021/03/03 Javascript
[00:58]2016年国际邀请赛勇士令状宣传片
2016/06/01 DOTA
[54:47]Liquid vs VP Supermajor决赛 BO 第五场 6.10
2018/07/05 DOTA
django 数据库连接模块解析及简单长连接改造方法
2019/08/29 Python
Python加密模块的hashlib,hmac模块使用解析
2020/01/02 Python
python3操作注册表的方法(Url protocol)
2020/02/05 Python
python简单利用字典破解zip文件口令
2020/09/07 Python
HTML4和HTML5之间除了相似以外的10个主要不同
2012/12/13 HTML / CSS
英国Zoro工具:手动工具,电动工具和个人防护用品
2016/11/02 全球购物
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
BookOutlet加拿大:在网上书店购买廉价折扣图书和小说
2018/10/05 全球购物
廉价连衣裙和婚纱礼服在线销售:Tbdress
2019/02/28 全球购物
护理自荐信范文
2013/10/05 职场文书
计算机工程学院个人求职信
2013/10/05 职场文书
审计主管岗位职责
2014/01/31 职场文书
高中生家长寄语大全
2014/04/03 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
玄武湖导游词
2015/02/05 职场文书
银行实习推荐信
2015/03/27 职场文书
vue backtop组件的实现完整代码
2021/04/07 Vue.js