[PYTHON] django + nginx So lassen Sie nur angemeldete Benutzer Bilder anzeigen

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 **.

Annahme

nginx → uwsgi → django Mit dieser Konfiguration können Sie von nginx aus auf django zugreifen.

Methode

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.

Dateiorganisation

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.

Quellcode

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'),
]

Zugriff

http://localhost:ポート/testapp/media/test.jpg

Recommended Posts

django + nginx So lassen Sie nur angemeldete Benutzer Bilder anzeigen
So registrieren Sie nur eine Daten auf dem Django-Verwaltungsbildschirm
Ein Memorandum, um WebDAV nur mit Nginx zu erstellen
[Django] So erhalten Sie Daten durch Angabe von SQL.
Inspiriert von "Wie man reines funktionales JavaScript macht"
[Fortsetzung] Inspiriert von "Wie man reines funktionales JavaScript erstellt"
Wie man Decorator in Django benutzt und wie man es macht
[Django] So leiten Sie nicht angemeldete Benutzer zur Anmeldeseite um
Django Treffen Sie Ihre Auswahl nur für die Einrichtung, zu der Sie gehören
Wie erstelle ich eine japanisch-englische Übersetzung?
[Django] So testen Sie Form [TDD]
Wie man einen lockeren Bot macht
Wie erstelle ich einen Crawler?
So erstellen Sie eine rekursive Funktion
Wie man CSS in Django reflektiert
Wie fange ich mit Django an?
[Blender] So erstellen Sie ein Blender-Plug-In
[Blender] So erstellen Sie Blender-Skripte mehrsprachig
Wie schreibe ich Django1.9 umweltunabhängig wsgi.py
Wie erstelle ich einen Crawler?
So melden Sie sich bei Docker + NGINX an
So führen Sie einen Prozessthread nur auf einem bestimmten CPU-Kern aus
[Rails] Erkennen radikaler Bilder durch Analysieren von Bildern mithilfe der Cloud Vision API