Python
Django

Djangoで画像表示したいんじゃぁぁ!!

More than 1 year has passed since last update.

Webアプリケーションを作っていると画像を使用したい時が必ず来ます。
しかし、Djangoで作ったWebアプリケーションで画像を使用するにはいくつかの設定を追加してやらないといけません。
そんなに難しくないのですがピンポイントで情報を表示しているところがなかったので記事を書こうと思います。

settings.pyに設定を追加

settings.py
MEDIA_URL = '/document/'

MEDIA_ROOT = (
    os.path.join(BASE_DIR, 'document')
)

settings.pyに上記のようにMEDIA_ROOTを追加してやりましょう。
コードを記述する場所はBASE_DIRを記述したところより下ならどこでも構いません、分かり易ところに記述してやりましょう。

urls.pyにも設定を追加

urls.py
from django.contrib import admin
# 下2行を追加
from django.conf import settings
from django.views.static import serve

urlpatterns = [
    url(r'^admin/', admin.site.urls),
        # 下1行を追加
    url(r'^document/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}),
]

次にadminのURLを設定している方のurls.pyに上記のように追加してやりましょう。

以上の設定で画像が表示されるようになったと思います。

まとめ

Railsなどと違いDjangoは設定が必要なのでそこが少し不便ですね。