[Python-es] Equivalente en fastcgi
Chema Cortes
pych3m4 en gmail.com
Jue Sep 15 03:37:05 EDT 2016
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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20160915/aedd7d1e/attachment.html>
Más información sobre la lista de distribución Python-es