2017-08-12 3 views
0

ich meine Bilder von meiner Web-Server Django wie folgt schicke:Serve Bilder mit Django

localhost:8000/media/images/foo.png 

Meine Frage ist bin ich die Bilder Senden der richtige Weg ist? Ich denke, es ist nicht notwendig, den Server zu senden, da ich der einzige bin, der die Fotos bedient. Irgendwelche Ideen, so etwas media/images/foo.png. Damit in der img HTML-Tag ist dies ein relativer Pfad und kein Link.

Antwort

1

Für Bilder in Django,

Zuerst stellen Sie sicher, dass Sie Ihre MEDIA_ROOT und MEDIA_URL definiert innerhalb der settings.py Datei dient.

Lassen Sie uns jetzt sagen, Sie ein Modell haben, models.py

class SomeModel(models.Model): 
    image = models.ImageField(upload_to = 'your_directory_inside_media') 
    #Rest of the fields 

Weiter innen Ihre Ansichten,

model_object = SomeModel.objects.get(...) #get an instance of model which has an ImageField 
context = {'image' : model_object.image } 
html = render(request , 'some_html.html' , context) 

Und schließlich in Ihrem HTML,

{% load static %} 
<img src="{% get_media_prefix %}{{ image.image }}"> 

this helps . Vielen Dank.

+0

Aber ich benutze keine Ansichten von Django, ich erstelle eine eckige App und sende diese URL, um auf das Bild zuzugreifen – fm433403

+0

Sie können die URL mit "image.name" erhalten. Es gibt Ihnen die vollständige URL. –

+0

aber, warum brauche ich hinzufügen '{% load static%}' Wenn meine Daten in 'Medien' gespeichert sind ?? – fm433403