Django ImageFiled上传照片并显示的方法
(编辑:jimmy 日期: 2025/10/25 浏览:3 次 )
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/("htmlcode">
#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/("htmlcode">
#模板
<body>
{% for photo in pics %}
<h3><p class="greentitle"> {{photo.name}} </p></h3>
<a href="{{photo.img.url}}" rel="external nofollow" ><img src="/UploadFiles/2021-04-08/{{photo.img.url}}">
#模板
<body>
<form enctype="multipart/form-data" action="" method="post">
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
</body>
以上这篇Django ImageFiled上传照片并显示的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
下一篇:Python线上环境使用日志的及配置文件
几个月来,英特尔、微软、AMD和其它厂商都在共同推动“AI PC”的想法,朝着更多的AI功能迈进。在近日,英特尔在台北举行的开发者活动中,也宣布了关于AI PC加速计划、新的PC开发者计划和独立硬件供应商计划。
在此次发布会上,英特尔还发布了全新的全新的酷睿Ultra Meteor Lake NUC开发套件,以及联合微软等合作伙伴联合定义“AI PC”的定义标准。
在此次发布会上,英特尔还发布了全新的全新的酷睿Ultra Meteor Lake NUC开发套件,以及联合微软等合作伙伴联合定义“AI PC”的定义标准。