Beim Kombinieren von Django und Nginx Die Methode besteht darin, statische Dateien wie Bilder mit collectstatic zu extrahieren und in Nginx zu platzieren.
Wenn Sie es jedoch in ** nginx ablegen, können Sie die statischen Dateien anzeigen, ohne sich beim System anzumelden ** Dies ist eine Methode, die mit der Anforderung verwendet werden kann, ** Bilder bereitzustellen, die Sie auf angemeldete Benutzer beschränken möchten **.
nginx → uwsgi → django Mit dieser Konfiguration können Sie von nginx aus auf django zugreifen.
So erstellen Sie eine Ansicht für eine Bild-URL in Django. Da es durch die Ansicht von django geht, kann nicht darauf zugegriffen werden, ohne sich beim System anzumelden.
projectroot
+ projectname
+ settings.py
+ media
+ pictures
+ test.jpg
+ testapp
+ urls.py
+ views.py
Definieren Sie eine Ansicht für den Zugriff auf die Dateien auf Medien in einer Anwendung in Django namens 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 steht für read binary
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