Lors de la combinaison de django et nginx La méthode consiste à extraire des fichiers statiques tels que des images avec collectstatic et à les placer dans nginx.
Cependant, si vous le placez dans ** nginx, vous pouvez voir les fichiers statiques sans vous connecter au système **, donc Il s'agit d'une méthode qui peut être utilisée avec l'exigence de ** fournir des images que vous souhaitez limiter aux utilisateurs connectés **.
nginx → uwsgi → django Avec cette configuration, vous pouvez accéder à django depuis nginx.
Comment créer une vue pour une URL d'image dans django. Puisqu'il passe par la vue de django, il n'est pas accessible sans se connecter au système.
projectroot
+ projectname
+ settings.py
+ media
+ pictures
+ test.jpg
+ testapp
+ urls.py
+ views.py
Définissez une vue pour accéder aux fichiers dans les médias dans une application dans django appelée testapp.
settings.py
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
views.py
from django.http import HttpResponse
import os
from projectname import settings
def picture(request, imgfilename):
file_path = os.path.join(settings.MEDIA_ROOT , 'pictures/' + imgfilename)
with open(file_path, "rb") as f: #rb signifie lecture binaire
imgfile = f.read()
return HttpResponse(imgfile , content_type="image/jpeg")
urls.py
urlpatterns = [
path('media/<imgfilename>', views.picture, name='picture'),
]
http://localhost:ポート/testapp/media/test.jpg
Recommended Posts