如何在Django中使用ImageFiled上传照片并显示

  介绍

如何在Django中使用ImageFiled上传照片并显示?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

<强> 1:首先理解设置。py中

MEDIA_ROOT:

MEDIA_URL:这两者之间的关系。

MEDIA_ROOT:就是保存上传图片的根目录,比如说MEIDA_ROOT=癈: \ \ Django \ \ Photo",则上传的照片就在这个文件夹中,如果ImageFiled中设置了upload_to,这个upload_to则让图片是上述根目录中子目录中存储.upload_to注意设置要区分有没有“/?,例如upload_to=& # 39;照片# 39;与upload_to=?/phto/本突嵩斐赏耆煌暮蠊?前面的用法是正确的。

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

例如:MEDIA_URL=& # 39;/媒体/& # 39;,这个MEDIA_URL是添加在ImageFIeld中存储路径的公共目录,例如

img=models.ImageField (upload_to=& # 39;照片# 39;,null=False,空白=True)

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

url。py中应该添加如下一条映射(" # 39;^媒体/(?术;path>。*) & # 39;美元,& # 39;django.views.static.serve& # 39;, {& # 39; document_root # 39;: settings.MEDIA_ROOT}),

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

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

<强>参考下列例子

# models.py   class  Img (models.Model):   name=models.CharField (max_length=30)   img=models.ImageField (upload_to=& # 39;照片# 39;,null=False,空白=True)   def  __unicode__(自我):   return  self.name # forms.py   class  ImgForm (ModelForm):   class 元:   模型=Img # views.py   @csrf_exempt    def 添加(请求):   if  request.method ==, & # 39;文章# 39;:   时间=form  ImgForm (request.POST request.FILES)   if  form.is_valid ():   form.save ()   其他:   时间=form  ImgForm ()   return  render_to_response (& # 39; add.html& # 39;,,{& # 39;形式# 39;:,形式})   ,   ,   def 清单(要求):   template_var才能={}   照片才能=Img.objects.all ()   template_var才能[& # 39;图片# 39;]=照片   return 才能;render_to_response (& # 39; list.html& # 39;, template_var,   ,,,,,,,,,,,context_instance=RequestContext(请求) # settings.py   时间=MEDIA_ROOT “xxxxx/媒体/?   ,   #,URL  that  handles 从而media  served 得到MEDIA_ROOT只Make  sure 用use    #,trailing  slash  if  there  is  a  path  component  (optional  other 拷贝;病例)。   #,例子:,“http://media.lawrence.com",,“http://example.com/media/"   MEDIA_URL =, & # 39;/媒体/& # 39; # urls . py   (" # 39;^媒体/(?术;path>。*) $ & # 39;,, & # 39; django.views.static.serve& # 39;,, {& # 39; document_root # 39;:, settings.MEDIA_ROOT}), #模板   & lt; body>   {%,for  photo 拷贝pics  %}   & lt; h4> & lt; p 类=癵reentitle"祝辞,{{photo.name}}, & lt;/p> & lt;/h4>   & lt; a  href=https://www.yisu.com/zixun/眥{photo.img.url}}”rel="外部nofollow”>  {{photo.img.url}}   {% endfor %}   
 #模板
  & lt; body>
  ,
  & lt;才能form  enctype=岸嗖糠?form-data", action=啊?方法=皃ost"比;
  ,
  ,,,{{,form.as_p }}
  ,
  ,,,& lt; input 类型=皊ubmit" https://www.yisu.com/zixun/, value=" Submit "/>  

关于如何在Django中使用ImageFiled上传照片并显示问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

如何在Django中使用ImageFiled上传照片并显示