Bus errorとSegmentation faultに困ったら見るブログ

物理の研究者による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)

【Django2, python3】静的なファイル(画像)をアプリで表示したい

(元記事 2021/07/06)

最近、Djangoというのを使ってwebアプリを作ってる(一から作ってるわけではなくて、他の人のを引き継いでやってる感じ)

なので、Djangoの基本を知らずにやってるのでかなり苦労してる・・・
公式ドキュメントは充実してるが、自分がやりたいことをそのままチュートリアルしてくれてるわけではないので少し大変

とりあえず少しずつ使えるようにはなってきている

                    • -

Djangoでは動的なファイルと静的なファイルが使える
動的というのはユーザーがアップロードしたファイルのこと
静的はサーバーに置いてあるファイルのこと、例えば画像とか

いろんな記事に書かれてるけど、画像を使うときは pillow というpythonパッケージが必要
condaでdjangoをインストールしたら同時にインストールされてたから改めてそんなに気にする必要はなさそう

Djangoでの静的なファイルを取り回すにはプロジェクト下のsettings.pyを修正する必要がある
下の記事がかなりわかりやすいと思う

邪道だとは思うけど、Djangoでテストして本番環境に持っていくわけでなければ、以下のコマンドは使わなくても良さそう
% python manage.py collectstatic

解説記事

qiita.com

元記事(英語)

rahmonov.me

            • -


とりあえず、view.pyでlsdirを走らせて静的な画像ファイルの一覧は取得できることを確認
あとはそれを表示すればいい
templateのindex.htmlでその入力を受けとる

受け取った配列をfor文で回せばOK
リストの中身が空のときの例外処理もemptyと書けばいいだけっぽいので楽
この点ではDjangoはかなり気が利くw