• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

python 搞代码 4年前 (2022-01-08) 27次浏览 已收录 0个评论

今天小编就为大家分享一篇Django ImageFiled上传照片并显示的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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-600 ,然后就需要考虑在Url文件中的映射,要在模板中访问该图片文件,则 img的src 设置为 {{ example.img.url }}即可

urls.py中应该添加如下一条映射 (r’^media/(?P.*)$’, ‘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 # trai<p style="color:transparent">来源gao!daima.com搞$代!码网</p>ling 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.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}), 
 #模板  {% for photo in pics %} <h3><p class="greentitle"> {{photo.name}} </p></h3></img> {% endfor %} 
 #模板   {{ form.as_p }} 

以上就是Django ImageFiled上传照片并显示的方法的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Django ImageFiled上传照片并显示的方法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址