Django1.9 加载通过ImageField上传的图片方法


Posted in Python onMay 25, 2018

这里假设你是通过models的ImageField上传图片,并期望在前台img标签中能显示。能否访问图片关键在于,是否能通过正确的路径访问。

在models.py中有image如下

image = models.ImageField(upload_to='images/%Y/%m', verbose_name='文件缩略图')

在显示页面中如show.html中使用img标签显示

<img class="center-block thumbnail" src="{{result.object.image.url }}" alt="" />

不过这里{{result.object.image.url}}只是读取出了上面模型upload_to下面的路径,并不能真正显示出来。要在模板中显示,还需要在urls.py和settings.py配置

下一步,在你的urls.py中配置如下:

from django.conf.urls import include, url
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
  '''你的其他url配置'''
]

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

setttings.py中配置 MEDIA_URL 和 MEDIA_ROOT,这里定义了media相关配置,也就是定义了模型中ImageField里的参数upload_to所在目录

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

到此,我们能够正确访问通过ImageFields上传的图片,下面是官方文档上面的一些说明

具体的相关文档

在模型中调用FileField 或 ImageField (见下方) 需如下几步:

在你的settings文件中, 你必须要定义 MEDIA_ROOT 作为Django存储上传文件的路径(从性能上考虑,这些文件不能存在数据库中。) 定义一个 MEDIA_URL 作为基础的URL或者目录。确保这个目录可以被web server使用的账户写入。

在模型中添加FileField 或 ImageField 字段, 定义 upload_to参数,内容是 MEDIA_ROOT 的子目录,用来存放上传的文件。

数据库中存放的仅是这个文件的路径 (相对于MEDIA_ROOT). 你很可能会想用由Django提供的便利的url 属性。比如说, 如果你的ImageField 命名为 mug_shot, 你可以在template中用 {{ object.mug_shot.url }}获得你照片的绝对路径。

例如,如果你的 MEDIA_ROOT设定为 ‘/home/media',并且 upload_to设定为 photos/%Y/%m/%d。 upload_to的'%Y/%m/%d‘被strftime()所格式化;'%Y' 将会被格式化为一个四位数的年份, ‘%m' 被格式化为一个两位数的月份'%d'是两位数日份。如果你在Jan.15.2007上传了一个文件,它将被保存在/home/media/photos/2007/01/15目录下.

以上这篇Django1.9 加载通过ImageField上传的图片方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python命令行参数解析模块getopt使用实例
Apr 13 Python
详解Python异常处理中的Finally else的功能
Dec 29 Python
python中字符串内置函数的用法总结
Sep 13 Python
在PyCharm中三步完成PyPy解释器的配置的方法
Oct 29 Python
pycharm配置pyqt5-tools开发环境的方法步骤
Feb 11 Python
详解python中的hashlib模块的使用
Apr 22 Python
Python 3.8中实现functools.cached_property功能
May 29 Python
Python pandas.DataFrame调整列顺序及修改index名的方法
Jun 21 Python
python批量处理txt文件的实例代码
Jan 13 Python
python计算波峰波谷值的方法(极值点)
Feb 18 Python
python selenium自动化测试框架搭建的方法步骤
Jun 14 Python
python 操作excel表格的方法
Dec 05 Python
python matplotlib 在指定的两个点之间连线方法
May 25 #Python
基于python OpenCV实现动态人脸检测
May 25 #Python
使用matplotlib画散点图的方法
May 25 #Python
python调用OpenCV实现人脸识别功能
May 25 #Python
matplotlib subplots 设置总图的标题方法
May 25 #Python
Python3.6.0+opencv3.3.0人脸检测示例
May 25 #Python
Python unittest模块用法实例分析
May 25 #Python
You might like
[原创]PHP中通过ADODB库实现调用Access数据库之修正版本
2006/12/31 PHP
10 个经典PHP函数
2013/10/17 PHP
php页面防重复提交方法总结
2013/11/25 PHP
php缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
PHP排序算法之基数排序(Radix Sort)实例详解
2018/04/21 PHP
js下用层来实现select的title提示属性
2010/02/23 Javascript
动态显示可输入的字数提示还可以输入的字数
2014/04/01 Javascript
jquery实现点击展开列表同时隐藏其他列表
2015/08/10 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
2017/12/05 Javascript
Node.js中DNS模块学习总结
2018/02/28 Javascript
vue.js的状态管理vuex中store的使用详解
2019/11/08 Javascript
js实现提交前对列表数据的增删改查
2020/01/16 Javascript
微信小程序用户登录和登录态维护的实现
2020/12/10 Javascript
Python实现将Excel转换为json的方法示例
2017/08/05 Python
详谈python3 numpy-loadtxt的编码问题
2018/04/29 Python
在Python中获取两数相除的商和余数方法
2018/11/10 Python
python与mysql数据库交互的实现
2020/01/06 Python
python3下pygame如何实现显示中文
2020/01/11 Python
在python3中使用shuffle函数要注意的地方
2020/02/28 Python
python实现井字棋小游戏
2020/03/04 Python
Python解析微信dat文件的方法
2020/11/30 Python
韩国最大的购物网站:Gmarket
2019/06/20 全球购物
系统管理员的职责包括那些?管理的对象是什么?
2013/01/18 面试题
架构师岗位职责
2013/11/18 职场文书
旅游管理专业个人求职信范文
2013/12/24 职场文书
好军嫂事迹材料
2014/01/15 职场文书
资源工程专业毕业生求职信
2014/02/27 职场文书
爱护花草树木的标语
2014/06/11 职场文书
给老婆的道歉信
2015/01/20 职场文书
2015年暑期社会实践活动总结
2015/03/27 职场文书
驻村工作简报
2015/07/20 职场文书
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python
Python中的datetime包与time包包和模块详情
2022/02/28 Python
python数字类型和占位符详情
2022/03/13 Python