Re: [Python-es] Equivalente en fastcgi
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 Cortesescribió: > > > 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
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
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
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/