[Python-es] Equivalente en fastcgi

Juan M. Puertas soft.sirius en gmail.com
Jue Sep 15 14:31:43 EDT 2016


Hola Fernando y Chema.
Muchas gracias por vuestros consejos.
Mi aplicación funciona perfectamente en Ubuntu 10, pero a partir de esa
versión da "Internal Server Error".
Menos mal que salió la noticia sobre los CGI y Python a la que hago
referencia en mi enlace anterior, por que no encontraba explicación al
misterio.
Estudiaré los enlaces que me habéis enviado.
Saludos :-)

El 15 de septiembre de 2016, 9:37, Chema Cortes <pych3m4 en gmail.com>
escribió:

>
>
> El mié., 14 sept. 2016 a las 19:07, Juan M. Puertas (<
> soft.sirius en gmail.com>) escribió:
>
>> ​Hola amigos.
>> Ya que ahora no se pueden hacer CGIs en Python como vimos en temas
>> anteriores. Por lo que he leído aquí: http://unaaldia.hispasec.com/
>> 2016/07/colega-donde-esta-mi-proxy.html esto no afecta a fastcgi.
>> Pero no encuentro documentación sobre cómo hacer las cosas con fastcgi,
>> por ejemplo me gustaría saber cual es el equivalente para recibir
>> argumentos enviados desde HTML. En CGI es así:
>>
>> form = cgi.FieldStorage()
>>
>> ¿Cómo se hace con fastcgi?
>> Gracias :-)
>>
>>>>
>
> Lo recomendable sería usar WSGI para desacoplar la aplicación web de la
> infraestructura que vaya a dar el servicio. Con WSGI puedes usar fastcgi
> entre otras alternativas. El interface WSGI se implementa como un
> "callable" con dos argumentos: un diccionario similar al usado en CGI y un
> callback (reponse) para las cabeceras de respuesta. Como retorno, se
> devuelve un iterable que genera el "body" de la página.
>
> Así de corrido, podría ser similar a ésto:
>
> import cgi
> def app(environ, start_response):    form = cgi.FieldStorage(fp=environ['wsgi.input'], environ=environ)
>
>     response_body = [' ... ']
>     ....
>
>     response_headers = [
>         ('Content-Type', 'text/plain'),
>         ('Content-Length', str(len(response_body)))
>     ]
>
>     start_response('200 OK', response_headers)
>     for line in response_body:
>
>         yield line
>
> if __name__ == '__main__':
>     from flup.server.fcgi import WSGIServer
>     WSGIServer(app).run()
>
> En la documentación oficial tienes un howto con un apartado que te explica
> cómo ejecutar una aplicación wsgi con fastcgi:
> https://docs.python.org/3.5/howto/webservers.html#fastcgi-and-scgi
>
>
> --
> Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales": http://
> ch3m4.org/blog
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20160915/16d03878/attachment.html>


Más información sobre la lista de distribución Python-es