最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django ImageFiled上傳照片并顯示的方法

 更新時(shí)間:2019年07月28日 09:01:52   作者:懶散的日子  
今天小編就為大家分享一篇Django ImageFiled上傳照片并顯示的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

1:首先理解settings.py中

MEDIA_ROOT:

MEDIA_URL:這兩者之間的關(guān)系。

MEDIA_ROOT:就是保存上傳圖片的根目錄,比如說(shuō)MEIDA_ROOT ="C:\\Django\\Photo",則上傳的照片就在這個(gè)文件夾中,如果ImageFiled中設(shè)置了upload_to,這個(gè)upload_to則讓圖片是上述根目錄中子目錄中存儲(chǔ)。upload_to注意設(shè)置要區(qū)分有沒(méi)有 " / " ,例如 upload_to='photo' 與 upload_to = " /phto/ ”就會(huì)造成完全不同的后果,前面的用法是正確的。

MEDIA_URL:主要用于URL映射這塊,與urls.py中一個(gè)映射有關(guān)系

例如:MEDIA_URL = '/media/', 這個(gè)MEDIA_URL是添加在ImageFIeld中存儲(chǔ)路徑的公共目錄.例如

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

則這個(gè)img的url屬性就是 “/media/photo/xxx.jpg ,然后就需要考慮在Url文件中的映射,要在模板中訪問(wèn)該圖片文件,則 img的src 設(shè)置為 {{ example.img.url }}即可

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

其中url中media就對(duì)應(yīng)著MEDIA_URL中的配置,對(duì) 這類(lèi)網(wǎng)址的訪問(wèn)都映射到MEDIA_ROOT這個(gè)目錄,并根據(jù)ImageFIled中存儲(chǔ)的相對(duì)路徑進(jìn)行訪問(wèn)。

把上述這幾個(gè)之間關(guān)系弄明白,使用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上傳照片并顯示的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

德安县| 钟祥市| 安阳县| 南乐县| 治县。| 新余市| 正定县| 武川县| 宜黄县| 阿勒泰市| 达日县| 博罗县| 岳阳市| 牙克石市| 惠州市| 萨嘎县| 平罗县| 富川| 阳曲县| 饶河县| 磐安县| 仁化县| 华蓥市| 高阳县| 杭锦后旗| 金堂县| 塔城市| 阿荣旗| 会宁县| 郁南县| 绍兴市| 禄劝| 武隆县| 虞城县| 肇庆市| 明光市| 高密市| 汤阴县| 图木舒克市| 桐庐县| 雷州市|