Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: [opgelost][Python]cgi met dynamic images  (gelezen 2057 keer)

Offline MKe

  • Lid
[opgelost][Python]cgi met dynamic images
« Gepost op: 2011/02/17, 11:43:30 »
Hoi,

Ik heb een scriptje geschreven die dynamisch een grafiek m.b.v. de  Python Imaging Library (PIL) library maakt. Ik wil dit graag inbouwen in een cgi script, dus laten zien op een webpagina. De pagina moet ook html bevatten en het plaatje staat daar dus tussen. Op dit moment sla ik de de getekende grafiek op als png bestand op de server en verwijs er vervolgens naar door een img commando te printen:
print '<img src="'+pad_naar_plaatje+'"/>"Dit werkt wel, maar heeft een groot nadeel: Door het bestand steeds op te slaan raakt de server erg vol met allerlei tijdelijke png bestanden die ik vervolgens moet laten verwijderen via een cron-job.
Nu mijn vraag: Is er een mogelijkheid om het plaatje direkt naar apache te printen, zodat ik het niet hoef op te slaan en dus niet meer aanwezig is als de pagina eenmaal bij de client op het scherm staat?
Ik gebruik Python 2.65 en apache2 als server.

ik heb wel gezien dat je het plaatje kunt weergeven m.b.v. een andere header: print "Content-type: image/png\n"Maar dit lijkt alleen te werken als je alleen het plaatje wil weergeven zonder de rest van de html-code.
« Laatst bewerkt op: 2011/02/24, 15:45:55 door MKe »
Mijn blokkendoos blog: http://mke21.wordpress.com/

Re: [Python]cgi met dynamic images
« Reactie #1 Gepost op: 2011/02/18, 08:05:53 »
Ik denk dat het mogelijk is, je moet een ander script maken (image.py of zo) en daar het plaatje laten tekenen en weergeven (met dat content-type dus). Als je parameters moet doorgeven, dan zullen die via GET moeten komen, denk ik.

- SeySayux
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Offline MKe

  • Lid
Re: [opgelost][Python]cgi met dynamic images
« Reactie #2 Gepost op: 2011/02/18, 11:00:00 »
Bedankt, dat was de oplossing. Beetje omslachtig om de data door te geven via de cgi parameters, maar het werkt nu prima!

Offline MKe

  • Lid
Re: [Python]cgi met dynamic images
« Reactie #3 Gepost op: 2011/02/22, 15:37:49 »
Moet hier nog even op terug komen. Ik geef dus de gegevens voor het berekenen van het plaatje via de GET methode.
print '<img src="plaatje.py?data=[heel veel data] (op de heel [veel data] staat natuurlijk echte data.
Als er echter te veel data is krijg ik een 'URL too long' foutmelding in de apache.log en geen plaatje.

Ik neem aan dat ik dus eigelijk een POST zou moeten doen, omdat die deze restrictie niet heeft. Heb alleen geen idee hoe dat moet.

Re: [Python]cgi met dynamic images
« Reactie #4 Gepost op: 2011/02/22, 16:47:30 »
Hmm, ja, da's wel een probleem waar ik ook niet zo direct een oplossing voor weet...
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net


Offline MKe

  • Lid
Re: [Python]cgi met dynamic images
« Reactie #6 Gepost op: 2011/02/22, 20:04:01 »
Inline? http://nl.wikipedia.org/wiki/Inline_image
Geweldig, die kende ik nog niet. Ik ga het denk ik wel even proberen, al denk ik niet dat het gaat werken voor mijn toepassing omdat mijn plaatjes te groot zijn:
Citaat
Het werkt alleen bij erg kleine plaatjes, omdat de lengte van de tekst in een <img> tag aan een maximum is gebonden.
Maar het is het proberen waard.

Re: [Python]cgi met dynamic images
« Reactie #7 Gepost op: 2011/02/22, 21:09:20 »
Bij de engelse stond 32 kB dacht ik zo uit mijn hoofd. Kwestie van proberen, niet geweldig moeilijk lijkt me.

Offline MKe

  • Lid
Re: [Python]cgi met dynamic images
« Reactie #8 Gepost op: 2011/02/24, 15:45:42 »
Het werkt, alleen blijven mijn plaatjes niet onder de 32 kB. Ik heb besloten om de communicatie naar het plaatje.py script anders te doen. Bedankt voor het meedenken!