Django ImageFiled上传照片并显示的方法


Posted in Python onJuly 28, 2019

1:首先理解settings.py中

MEDIA_ROOT:

MEDIA_URL:这两者之间的关系。

MEDIA_ROOT:就是保存上传图片的根目录,比如说MEIDA_ROOT ="C:\\Django\\Photo",则上传的照片就在这个文件夹中,如果ImageFiled中设置了upload_to,这个upload_to则让图片是上述根目录中子目录中存储。upload_to注意设置要区分有没有 " / " ,例如 upload_to='photo' 与 upload_to = " /phto/ ”就会造成完全不同的后果,前面的用法是正确的。

MEDIA_URL:主要用于URL映射这块,与urls.py中一个映射有关系

例如:MEDIA_URL = '/media/', 这个MEDIA_URL是添加在ImageFIeld中存储路径的公共目录.例如

img=models.ImageField(upload_to='photo',null=False,blank=True)

则这个img的url属性就是 “/media/photo/xxx.jpg ,然后就需要考虑在Url文件中的映射,要在模板中访问该图片文件,则 img的src 设置为 {{ example.img.url }}即可

urls.py中应该添加如下一条映射 (r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),

其中url中media就对应着MEDIA_URL中的配置,对 这类网址的访问都映射到MEDIA_ROOT这个目录,并根据ImageFIled中存储的相对路径进行访问。

把上述这几个之间关系弄明白,使用ImageField上传图片并显示就很容易

参考下列例子

#models.py
class Img(models.Model):
	name=models.CharField(max_length=30)
	img=models.ImageField(upload_to='photo',null=False,blank=True)
	def __unicode__(self):
		return self.name
#forms.py
class ImgForm(ModelForm):
	class Meta:
		model=Img
#views.py
@csrf_exempt 
def add(request):
	if request.method == 'POST':
		form = ImgForm(request.POST,request.FILES)
		if form.is_valid():
			form.save()
	else:
		form = ImgForm()
	return render_to_response('add.html', {'form': form})
 
 
def list(request):
  template_var={}
  photos=Img.objects.all()
  template_var['pics']=photos
  return render_to_response('list.html',template_var,
            context_instance=RequestContext(request))
#settings.py
MEDIA_ROOT = "/xxxxx/media/"
 
# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash if there is a path component (optional in other cases).
# Examples: "http://media.lawrence.com", "http://example.com/media/"
MEDIA_URL = '/media/'
#urls.py
(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
#模板
<body>
	{% for photo in pics %}
		<h3><p class="greentitle"> {{photo.name}} </p></h3>
		<a href="{{photo.img.url}}" rel="external nofollow" ><img src="{{photo.img.url}}" alt="{{photo.img.url}}"></img></a>
		{% endfor %}
</body>
#模板
<body>
 
  <form enctype="multipart/form-data" action="" method="post">
 
    {{ form.as_p }}
 
    <input type="submit" value="Submit" />
 
  </form>
 
</body>

以上这篇Django ImageFiled上传照片并显示的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用函数默认值实现函数静态变量的方法
Aug 18 Python
Python的SQLAlchemy框架使用入门
Apr 29 Python
python基础教程之匿名函数lambda
Jan 17 Python
Sanic框架基于类的视图用法示例
Jul 18 Python
python对象与json相互转换的方法
May 07 Python
如何使用django的MTV开发模式返回一个网页
Jul 22 Python
Django文件上传与下载(FileFlid)
Oct 06 Python
Python字典深浅拷贝与循环方式方法详解
Feb 09 Python
python实现贪吃蛇双人大战
Apr 18 Python
python根据完整路径获得盘名/路径名/文件名/文件扩展名的方法
Apr 22 Python
结束运行python的方法
Jun 16 Python
python基础学习之生成器与文件系统知识总结
May 25 Python
Python线上环境使用日志的及配置文件
Jul 28 #Python
Django 实现admin后台显示图片缩略图的例子
Jul 28 #Python
处理python中多线程与多进程中的数据共享问题
Jul 28 #Python
在django中图片上传的格式校验及大小方法
Jul 28 #Python
python之生产者消费者模型实现详解
Jul 27 #Python
python单线程下实现多个socket并发过程详解
Jul 27 #Python
如何使用python操作vmware
Jul 27 #Python
You might like
PHP生成网页快照 不用COM不用扩展.
2010/02/11 PHP
PHP缩略图等比例无损压缩,可填充空白区域补充色
2011/06/10 PHP
Laravel框架学习笔记(一)环境搭建
2014/10/15 PHP
PHP获取youku视频真实flv文件地址的方法
2014/12/23 PHP
thinkPHP5.0框架开发规范简介
2017/03/25 PHP
Laravel核心解读之异常处理的实践过程
2019/02/24 PHP
php文件操作之文件写入字符串、数组的方法分析
2019/04/15 PHP
JavaScript面象对象设计
2008/04/28 Javascript
深入理解JavaScript作用域和作用域链
2011/10/21 Javascript
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
2012/04/20 Javascript
js中的for如何实现foreach中的遍历
2014/05/31 Javascript
js动态引入的四种方法
2018/05/05 Javascript
JQuery Ajax动态加载Table数据的实例讲解
2018/08/09 jQuery
NodeJs 文件系统操作模块fs使用方法详解
2018/11/26 NodeJs
使用layui前端框架弹出form表单以及提交的示例
2019/10/25 Javascript
简单了解Vue computed属性及watch区别
2020/07/10 Javascript
Vue 实现拨打电话操作
2020/11/16 Javascript
python实现简单图片物体标注工具
2019/03/18 Python
Django的性能优化实现解析
2019/07/30 Python
详解Python time库的使用
2019/10/10 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
keras实现多种分类网络的方式
2020/06/11 Python
Python Django中间件使用原理及流程分析
2020/06/13 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
2020/07/07 Python
Lyle & Scott苏格兰金鹰官网:英国皇室御用品牌
2018/05/09 全球购物
心理学专业毕业生推荐信范文
2013/11/21 职场文书
计算机专业毕业生求职信分享
2013/12/24 职场文书
西式婚礼证婚词
2014/01/12 职场文书
结婚邀请函范文
2014/01/14 职场文书
大学社团活动策划书
2014/01/26 职场文书
校本教研活动总结
2014/07/01 职场文书
组工干部演讲稿
2014/09/02 职场文书
入党现实表现材料
2014/12/23 职场文书
捐助感谢信
2015/01/22 职场文书
“5.12”护士节主持词
2015/07/04 职场文书
关于vue中如何监听数组变化
2021/04/28 Vue.js