Re: [Python-es] Equivalente en fastcgi

2016-09-15 Por tema Juan M. Puertas
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 
escribió:

>
>
> El mié., 14 sept. 2016 a las 19:07, Juan M. Puertas (<
> soft.sir...@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@python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Equivalente en fastcgi

2016-09-15 Por tema Chema Cortes
El mié., 14 sept. 2016 a las 19:07, Juan M. Puertas ()
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@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Equivalente en fastcgi

2016-09-14 Por tema Fernando Villarroel via Python-es
Hola.

Ósea igual puedes usar CGI, las vulnerabilidades siempre van a existir.

Yo te recomendaría usar Flask, es excelente y liviano a la hora de fabricar 
API, o bien servicios Rest.

http://blog.miguelgrinberg.com/post/designing-a-restful-api-with-python-and-flask

Espero te ayude.

Saludos.

Enviado desde mi iPhone

> El 14-09-2016, a las 14:05, "Juan M. Puertas"  
> 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 :-)
> ​
> 
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


[Python-es] Equivalente en fastcgi

2016-09-14 Por tema Juan M. Puertas
​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 :-)

​
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/