django 如何在HMTL中使用媒体media_url中指定的路径
第一种:
一、
setting.py里,一般图片或者文件上传路径都是是以下设置,
MEDIA_URL = '/media/' #访问路径
MEDIA_ROOT = os.path.join(BASE_DIR, 'media') #上传路径
二、
项目app里url.py,设置如下
from django.conf import settings
from django.views.static import serve
urlpatterns = [url(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT})]
三、
如果想在html中调用media_url的访问路径
# 首先在setting.py中 TEMPLATES 下面的 'context_processors': 里面添加 'django.template.context_processors.media', TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'front/templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug',
在html中即可如此调用
<body><img src = "{{ MEDIA_URL }}{{ceshi}}"></body>
如果没有第三步设置,html中只能使用以下方式调用:
<img src = "/media/{{ceshi}}">
第二种:需要django版本>=1.7
from django.conf import settings from django.conf.urls.static import static urlpatterns = patterns('', # ... the rest of your URLconf goes here ... ) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 然后通过添加启用media context_processors inTEMPLATE_CONTEXT_PROCESSORS TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ #here add your context Processors 'django.template.context_processors.media', ], }, }, ] 现在每个RequestContext都包含一个变量MEDIA_URL 现在你可以在你的访问中访问它 template_name.html <p><img src="{{ MEDIA_URL }}/image_001.jpeg"/></p>