[python] cgi

Petr Messner petr.messner na gmail.com
Čtvrtek Srpen 4 10:30:47 CEST 2011


Ahoj,

tento problém řeší snad každý webový framework, takže možnosti existují.

Třeba Werkzeug se dá pod CGI rozjet takto:
http://werkzeug.pocoo.org/docs/deployment/cgi/
POSTnutá data jsou k dispozici v MultiDictu Request.form, soubory jsou
zvlášť v Request.files:
http://werkzeug.pocoo.org/docs/wrappers/#werkzeug.wrappers.BaseRequest.files
Werkzeug má na to vlastní FileStorage:
http://werkzeug.pocoo.org/docs/datastructures/#werkzeug.datastructures.FileStorage

Podobně ve WebOb jsou POSTnutá data v req.POST, opět v nějakém
multidictu jako FieldStorage. Ale nevím, jaký přesně FieldStorage to
je.

Django zase ukládá POST data do Request.POST (což je QueryDict) nebo
Request.FILES jako UploadedFile:
https://docs.djangoproject.com/en/dev/ref/request-response/

A takhle by se dalo pokračovat. Jak je vidět, nějakou vlastní
abstrakci nad daty z HTTP POST si dělá snad každý :) Udělat si jen
vlastní objekt (fasádu) nad cgi.FieldStorage s hezčím API by také bylo
možná řešení.

Snad jsem odpověděl správně. Mimochodem, CGI bych dnes už
nedoporučoval, snad jen kromě studijních účelů. Aplikace pod CGI jsou
pomalé, protože při každém HTTP požadavku se musí celá aplikace
spustit znovu.

PM


2011/8/4 Martin Beran <info na berycz.net>:
> zdravím, jsem tu novej...
> a zajímalo by mě, jestli existuje pohodlnější možnost načítání dat z cgi,
> než je cgi.FieldStorage, protože ten mi přijde naprosto nepohodlnej. (když
> python běží pod cgi)
>
> Díky
> MB


Další informace o konferenci Python