最新国产好看的视频,伊人天堂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ū)分有沒有 " / " ,例如 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ì) 這類網(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)論

祁阳县| 通山县| 伊川县| 合肥市| 江津市| 六枝特区| 蓬溪县| 安康市| 于田县| 东辽县| 牡丹江市| 扶风县| 鄢陵县| 巴东县| 阳曲县| 西林县| 桦南县| 子洲县| 乌恰县| 阜南县| 江都市| 广宁县| 涪陵区| 连州市| 漯河市| 木兰县| 阜平县| 青冈县| 通江县| 聊城市| 景宁| 常熟市| 栾川县| 平顶山市| 顺平县| 肥东县| 塘沽区| 徐州市| 河南省| 军事| 盐池县|