在Django模板中显示图像 [英] show images in Django templates

查看:271
本文介绍了在Django模板中显示图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人可以帮助我解决这个问题:我有一个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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆