🐍
【Python】Djangoで画像や動画のフォルダはどのディレクトリに保存するのか
開発環境:
項目 | バージョン |
---|---|
windows | 11 |
Vscode | 1.87.2 |
Docker | 26.1.1 |
Docker-compose | 2.27.0 |
python | 3.11.10 |
Django | 5.0.1 |
Psql | 16.5 |
達成目標
- Djangoで画像や動画のフォルダはどのディレクトリに保存するのか理解し、実装することができる。
前提
- アプリケーションのトップページが表示されている状態かつデータベースの設定が完了している状態から解説をしていく。
開発環境の構築がまだの方はこちらから↓
データベースの設定がまたの方はこちらから↓
メディアフォルダをどこに配置するのか
プロジェクトフォルダ配下に配置する
プロジェクトルート/
│
├── manage.py
├── myproject/ # プロジェクトのメインフォルダ
├── media/ # メディアファイルの保存先 (アップロードファイル)
│ ├── thumbnails/ # 画像用サブフォルダ
│ └── videos/ # 動画用サブフォルダ
├── static/ # 静的ファイル (CSS, JavaScript)
├── templates/ # テンプレートファイル
└── ...
1.メディアフォルダを作成する
プロジェクトフォルダ配下に画像用フォルダを作成する
mkdir media/thumbnails
プロジェクトフォルダ配下に動画用フォルダを作成する
mkdir media/videos
settings.py
ファイルの編集
2.動画や画像を扱う場合は、settings.pyファイルに追記が必要
BASE_DIR = Path(__file__).resolve().parent.parent
MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR, 'media'
urls.py
ファイルの編集
3.url.pyファイルに以下を全て追加する。
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('videos/', include('videos.urls')),
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Discussion