Creating temperory files for a web application

koranthala koranthala at gmail.com
Fri May 8 08:22:44 EDT 2009


On May 8, 2:49 pm, "Diez B. Roggisch" <de... at nospam.web.de> wrote:
> koranthala wrote:
> > Hi,
> >    I am doing web development using Django. I need to create an image
> > (chart) and show it to the users - based on some data which user
> > selects.
> >    My question is - how do I create a temporary image for the user? I
> > thought of tempfile, but I think it will be deleted once the process
> > is done - which would happen by the time user starts seeing the image.
>
> What makes you think that? You are the one creating it, you are responsible
> for deleting it.
>
> > I can think of no other option other than to have another script which
> > will delete all images based on time of creation.
> >    Since python is extensively used for web development, I guess this
> > should be an usual scenario for many people here. How do you usually
> > handle this?
>
> There are various solutions - tempfiles, files based on a criteria (e.g.
> username and image-properties) so that they don't pollute the harddrive.
>
> For both approaches cleaning up as you suggest might be needed.
>
> Alternatively, if you use sessions, you can use memory-cached images.
>
> Or you can use the database.
>
> But the cleaning-up might get necessary here as well.
>
> The cleanest solution would be if the image would be rendered on the fly,
> based on GET-parameters (or REST-ful urls) so that you can render it into
> memory as string, but then forget immediately about it.
>
> Diez

Thank you Diez.
I would like to go ahead with the cleanest solution indeed.
I am creating the image on the fly. But I could not understand what
you meant by render to memory as a string.
How do we send the image to the browser?

Were you mentioning about having the image as a string and then
passing to the browser based on data URL scheme <RFC 2397> ?
Or is it something else like XBM format or something? I am sorry - but
I am quite unsure of what you meant?

I am actually creating PDFs, CSVs and images on the fly. So, I need to
delete them all after that.
The images can be somewhat large - ~2MB. The RFC mentions that large
data cannot be sent that way.

Is it that I will have to delete the images using a separate script
later?




More information about the Python-list mailing list