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中实现对Timestamp和Datetime及UTC时间之间的转换
Apr 08 Python
Python内置函数dir详解
Apr 14 Python
举例讲解Python的lambda语句声明匿名函数的用法
Jul 01 Python
Python操作使用MySQL数据库的实例代码
May 25 Python
python使用SMTP发送qq或sina邮件
Oct 21 Python
python 实时得到cpu和内存的使用情况方法
Jun 11 Python
python将txt文件读入为np.array的方法
Oct 30 Python
Python切图九宫格的实现方法
Oct 10 Python
python如何查看网页代码
Jun 07 Python
DataFrame.groupby()所见的各种用法详解
Jun 14 Python
python 检测图片是否有马赛克
Dec 01 Python
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
Apr 14 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 获取当前访问的url文件名的方法小结
2010/02/08 PHP
php学习之数据类型之间的转换代码
2011/05/29 PHP
PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
2012/01/16 PHP
php微信公众号开发之欢迎老朋友
2018/10/20 PHP
JQuery slideshow的一个小问题(如何发现及解决过程)
2013/02/06 Javascript
jquery阻止后续事件只执行第一个事件
2014/07/24 Javascript
node.js中的http.response.writeHead方法使用说明
2014/12/14 Javascript
jQuery超简单选项卡完整实例
2015/09/26 Javascript
基于JS代码实现实时显示系统时间
2016/06/16 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
2016/08/24 Javascript
touch.js 拖动、缩放、旋转 (鼠标手势)功能代码
2017/02/04 Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
2017/09/15 Javascript
vue cli3.0 引入eslint 结合vscode使用
2019/05/27 Javascript
JS数组方法join()用法实例分析
2020/01/18 Javascript
Pyramid Mako模板引入helper对象的步骤方法
2013/11/27 Python
python在linux中输出带颜色的文字的方法
2014/06/19 Python
讲解Python中的标识运算符
2015/05/14 Python
Python中逗号的三种作用实例分析
2015/06/08 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
2018/06/13 Python
flask框架视图函数用法示例
2018/07/19 Python
Python中使用__new__实现单例模式并解析
2019/06/25 Python
如何使用python把ppt转换成pdf
2019/06/29 Python
Python 占位符的使用方法详解
2019/07/10 Python
Python内存管理实例分析
2019/07/10 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
Python常用模块函数代码汇总解析
2020/08/31 Python
AJAX应用和传统Web应用有什么不同
2013/08/24 面试题
楼面经理岗位职责范本
2014/02/18 职场文书
优秀学生干部先进事迹材料
2014/05/26 职场文书
干部选拔任用方案
2014/05/26 职场文书
雷人标语集锦
2014/06/19 职场文书
中国梦演讲稿5分钟
2014/08/19 职场文书
邓小平理论心得体会
2014/09/09 职场文书
企业法人授权委托书范本
2014/09/23 职场文书
2016高校自主招生自荐信范文
2016/01/28 职场文书
Oracle 临时表空间SQL语句的实现
2021/09/25 Oracle