Djangoで画像を表示する方法

Djangoで画像を表示する方法をご紹介します。

条件

  • Django 2.1.7
  • Python 3.7.0

settings.py

以下を追記します。

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

urls.py

以下を追記します。

from . import settings
from django.contrib.staticfiles.urls import static
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
 
 
urlpatterns += staticfiles_urlpatterns()
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

記述例

from django.contrib import admin
from django.urls import path, include
from . import settings
from django.contrib.staticfiles.urls import static
from django.contrib.staticfiles.urls import staticfiles_urlpatterns

urlpatterns = [
    path('admin/', admin.site.urls),
    path('accounts/', include('django.contrib.auth.urls')),
    path('', include('search.urls')),
]

urlpatterns += staticfiles_urlpatterns()
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

画像格納先ディレクトリ

プロジェクトの下に以下のようなディレクトリを作成します。

project
└ media

作成したディレクトリの下に画像を配置します。
(ディレクトリは何層になってもOKです。)

実際の画像ファイルパス例

project
└ media
   └ images
       └ image.jpg

テンプレート

任意のテンプレートで以下のようにタグを記述すれば対象画像が画面に表示されます。

<img src="/media/images/image.JPG" width="100%" height="100%" border="0" />

参考

Display Image in a Django Template (using ImageField)

Display Image in a Django Template (using ImageField)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です