Django: 이미지를 표시하기 위한 미디어 설정
Django는 백엔드(admin 또는 xadmin)를 통해 그림을 업로드하기 전에 미디어 경로와 폴더를 설정해야 합니다.
주 처리
ImageField
필드, 여기 uploadto에서 %Y
는 연, %m
는 월을 나타낸다.class CourseOrg(models.Model):
image = models.ImageField(default='', upload_to='org/%Y/%m', verbose_name='logo', max_length=100)
프로젝트 디렉터리에 새 폴더
media
를 만들고 settings에 미디어 경로와 디렉터리를 설정합니다.import os
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
2. 템플릿의 이미지 주소
ImageField를 어떻게 이미지 주소로 바꿉니까?
우선, ImageField 저장 방식은 문자열이고 그림의 상대적인 경로 주소입니다.
{{ course_org.image }}
는 상대 경로이며 settings에 구성된 MEDIA 를 앞에 추가해야 합니다.URL![]({{ MEDIA_URL }}{{ org.image }})
3. settings에서 템플릿을 구성하는 프로세서
TEMPLATES의 OPTIONS의 context프로세스ors에
'django.template.context_processors.media'
를 추가해야 합니다.이것은 Django 1.8 이전
'django.core.context_processors.media'
부터였고, 지금은 Django 1.11부터 context_processors.media
코어에서 가이드 템플레이트로 바뀌었다.TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')]
,
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
#...
'django.template.context_processors.media',
],
},
},
]
이 단계에서는 그림을 표시할 수 없습니다. 웹 소스 코드에서 그림이 있는 주소를 볼 수 있습니다.그러나 urls에서 그림 주소의 경로를 설정해서 Django가 그곳에 가서 그림을 찾을 수 있도록 해야 한다.
4. urls 구성
정적 파일을 처리하는 방법을 도입해야 합니다
from django.views.static import serve
또한 settings에서 설정된 미디어 디렉터리 주소 MEDIA 를 도입해야 합니다.ROOT
from MxOnline.settings import MEDIA_ROOT
마지막으로 URL에 완전하게 설정하면 다음과 같습니다
# -*- coding:utf-8 -*-
from django.views.static import serve
from MxOnline.settings import MEDIA_ROOT
urlpatterns = [
# media ,
url(r'^media/(?P.*)', serve, {"document_root":MEDIA_ROOT}),
]
이로써 그림이 나타날 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.