Per un numero limitato di browser, è possibile codificare in base64 l'immagine e utilizzare le immagini in linea. Vedi Embedding Base64 Images.
Una soluzione che funziona per tutti i browser è un tag immagine che fa riferimento a view that returns the image.
[update]
Tutto quello che voglio è per l'utente di presentare l'immagine originale, e quindi viene richiesto da un altro modulo per inserire una didascalia per l'immagine (con l'immagine ridimensionata alla sinistra del campo didascalia). Quindi, quando l'utente fa clic su "invia" l'immagine e la didascalia viene salvata in un'istanza del modello.
Beh ... Quando si utilizza <img src="foo">
, foo è sempre recuperato da un GET, forse è per questo che non funziona - request.FILES non saranno disponibili in una richiesta GET. Se apri firebug o la barra degli strumenti di debug di Chrome, nella scheda di rete, vedrai la richiesta POST con l'immagine caricata e poi una richiesta GET per recuperare l'immagine.
È necessario salvare l'immagine da qualche parte tra i due gradini.
in quale altro modo è possibile salvarlo? Mi piacerebbe che fosse temporaneo. Pensi che ci sia un modo davvero semplice per fare questo, o dovrei dare un'occhiata a queste opzioni?
Le scelte più frequenti sono redis e memcached. Puoi pensare a loro come un gigantesco pitone condiviso dettato con una data di scadenza. Se le immagini sono piccole, come un avatar, puoi anche salvare i dati dell'immagine in una variabile di sessione.
fonte
2013-01-15 23:05:46
Sei sicuro di voler servire l'immagine direttamente dal tuo processo Django?Non solo consumerà memoria preziosa, ma vincolerà anche un thread o processo –
(Senza alcuna prova concreta) Penso che tu stia molto meglio salvando l'immagine e lasciando che il server Web front-end faccia lo shuffling byte per te. Dai un'occhiata a X-Sendfile (Apache) o X-Accel-Redirect (Nginx). –