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函数帮助查询小工具
Mar 13 Python
django框架之cookie/session的使用示例(小结)
Oct 15 Python
python远程邮件控制电脑升级版
May 23 Python
pandas对dataFrame中某一个列的数据进行处理的方法
Jul 08 Python
详解程序意外中断自动重启shell脚本(以Python为例)
Jul 26 Python
python 模拟创建seafile 目录操作示例
Sep 26 Python
Python定时器线程池原理详解
Feb 26 Python
详解python3类型注释annotations实用案例
Jan 20 Python
python如何修改文件时间属性
Feb 05 Python
Python基础详解之描述符
Apr 28 Python
Python turtle编写简单的球类小游戏
Mar 31 Python
python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)
Apr 06 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
无线电的诞生过程
2021/03/01 无线电
PHP中通过加号合并数组的一个简单方法分享
2011/01/27 PHP
Smarty模板学习笔记之Smarty简介
2014/05/20 PHP
php实现redis数据库指定库号迁移的方法
2015/01/14 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
解析javascript 浏览器关闭事件
2013/07/08 Javascript
jQuery焦点图切换特效代码分享
2015/09/15 Javascript
简单实现jquery焦点图
2016/12/12 Javascript
Bootstrap Img 图片样式(推荐)
2016/12/13 Javascript
node.js文件上传重命名以及移动位置的示例代码
2018/01/19 Javascript
微信小程序scroll-view组件实现滚动动画
2018/01/31 Javascript
layer.prompt使文本框为空的情况下也能点击确定的方法
2019/09/24 Javascript
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
js重写alert事件(避免alert弹框标题出现网址)
2020/12/04 Javascript
举例讲解Python程序与系统shell交互的方式
2015/04/09 Python
利用Python2下载单张图片与爬取网页图片实例代码
2017/12/25 Python
Python中的groupby分组功能的实例代码
2018/07/11 Python
利用python循环创建多个文件的方法
2018/10/25 Python
对Pyhon实现静态变量全局变量的方法详解
2019/01/11 Python
如何将你的应用迁移到Python3的三个步骤
2019/12/22 Python
浅谈ROC曲线的最佳阈值如何选取
2020/02/28 Python
django修改models重建数据库的操作
2020/03/31 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
Python用户自定义异常的实现
2020/12/25 Python
省级四好少年事迹材料
2014/01/25 职场文书
自荐书4要点
2014/01/25 职场文书
六年级数学教学反思
2014/02/03 职场文书
《长征》教学反思
2014/04/27 职场文书
项目经理任命书范本
2014/06/05 职场文书
奥巴马经典演讲稿
2014/09/13 职场文书
2014国庆节国旗下演讲稿(精选版)
2014/09/26 职场文书
计生办班子群众路线教育实践活动个人对照检查材料思想汇报
2014/10/04 职场文书
党员教师批评与自我批评发言稿
2014/10/15 职场文书
2015毕业生简历自我评价
2015/03/02 职场文书
导游词之宁夏贺兰山岩画
2019/11/08 职场文书
mysql5.5中文乱码问题解决的有用方法
2022/05/30 MySQL