在Django模板中显示图像 [英] show images in Django templates
本文介绍了在Django模板中显示图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在settings.py
MEDIA_ROOT ='C:/ Users / hl / workspace / beer / media'
MEDIA_URL ='/ media /'
STATICFILES_DIRS = (
'C:/ Users / hl / workspace / beer / media'
)
和models.py
image1 = models.ImageField(upload_to = settings.MEDIA_ROOT )
和url.py
(r'^ media /(?P< path>。*)$','django.views.static.serve',{'document_root' 。
def allBeer(request):
beers = Beer.objects.all()。order_by(name)
context = { 'beers':beers}
return render_to_response('AllBeers.html',context,context_instance = RequestContext(request))
和html
{%啤酒%}
< p>
< a href =/ beers / {{beer.slug}} />
< img scr ={{beer.image1.url}}> {{beer}}
< / a>
< / p>
{%endfor%}
加载图片没有问题,但图片不显示在html文件。我已经从互联网搜索并阅读了很多,但我仍然无法弄清楚。
任何人都可以告诉我为什么?
解决方案
image1 = models.ImageField(upload_to = images)
from django.conf。 url import pattern,include,url
from django.conf.urls.static import static
from django.contrib import admin
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from project_name import settings
admin.autodiscover()
urlpatterns = patterns('',
...........
)+ static settings.MEDIA_URL,document_root = settings.MEDIA_ROOT)
urlpatterns + = staticfiles_urlpatterns()
< img src ={{MEDIA_URL}} {{beer .image1}}>
settings.py
import os
PROJECT_ROOT = os.path.join(os.path.dirname(__ file__),'..')
SITE_ROOT = PROJECT_ROOT
MEDIA_ROOT = os.path.join(SITE_ROOT,'media')
MEDIA_URL ='/ media /'
STATIC_ROOT = os.path.join(SITE_ROOT,'static')
STATIC_URL ='/ static /'
STATICFILES_DIRS =(
#喜欢/ home / html / static或C:/ www / django / static
#即使在Windows上也可以使用正斜杠
os.path.join(SITE_ROOT,'staticfiles' )
)
TEMPLATE_DIRS =(
#将字符串放在这里,如/ home / html / django_templates或C:/ www / django / templates
#始终使用正斜杠,甚至在Windows上
#不要忘记使用绝对路径,而不是相对路径
os.path.join(SITE_ROOT,'templates'),
)
Can someone help me with this issue: I have a Django porject,
in settings.py
MEDIA_ROOT = 'C:/Users/hl/workspace/beer/media'
MEDIA_URL = '/media/'
STATICFILES_DIRS = (
'C:/Users/hl/workspace/beer/media'
)
and in models.py
image1= models.ImageField(upload_to=settings.MEDIA_ROOT)
and in url.py
(r'^media/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT}),
in views
def allBeer(request):
beers=Beer.objects.all().order_by("name")
context={'beers': beers}
return render_to_response('AllBeers.html',context,context_instance=RequestContext(request))
and in html
{%for beer in beers %}
<p>
<a href="/beers/{{beer.slug}}/">
<img scr="{{beer.image1.url}}">{{beer}}
</a>
</p>
{% endfor%}
It has not problem to load images, but images wont show in html file. I have searched and read a lot from internet but I still couldn't figure out.
Can anyone tell me why?
解决方案
image1= models.ImageField(upload_to=images)
from django.conf.urls import patterns, include, url
from django.conf.urls.static import static
from django.contrib import admin
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from project_name import settings
admin.autodiscover()
urlpatterns = patterns('',
...........
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += staticfiles_urlpatterns()
<img src="{{MEDIA_URL}}{{beer.image1}}">
settings.py
import os
PROJECT_ROOT = os.path.join(os.path.dirname(__file__), '..')
SITE_ROOT = PROJECT_ROOT
MEDIA_ROOT = os.path.join(SITE_ROOT, 'media')
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(SITE_ROOT, 'static')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
os.path.join(SITE_ROOT, 'staticfiles'),
)
TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
os.path.join(SITE_ROOT, 'templates'),
)
这篇关于在Django模板中显示图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文