[pyar] Duda sobre implementación de BaseHTTPRequestHandler

Alejandro M. Bernardis alejandro.bernardis en gmail.com
Mar Mayo 28 08:58:46 ART 2013


Hola,
Respecto a la configuración, podrías crear un `settings.py` e importarlo.

~
## main.py 

import settings
mi_variable = settings.VARIABLE


~
## settings.py

VARIABLE = "xxx"
VARIABLE = 123
VARIABLE = True
VARIABLE = [1, 2, 3]
VARIABLE = {'a':1, 'b':2, 'c':3}


También podrías utilizar Tornado Web Server (async) u otro que se le parezca.

http://www.tornadoweb.org/en/stable/

Slds-
A!~


-- 
--
Alejandro M. Bernardis.
Sr. Digital Consultant / Developer.

m. 55 61 14 62 67 (principal)
m. 55 34 34 14 28
e.  alejandro.bernardis en gmail.com
s.  alejandro.bernardis
t.  @alejandromb

--
El contenido de este mensaje es confidencial. Si usted ha recibido
este mensaje por error, le pedimos que no lo reenvíe y lo borre
inmediatamente.

The contents of this message are confidential. If message has been
received in error, please do not forward and destroy immediately.

On May 28, 2013, at 12:04 AM, Eliseo Ocampos <roskoff en gmail.com> wrote:

> Buenas noches gente,
> 
>    Estuve trabajando con un script que debe simular a cierto servidor web, básicamente tiene que recibir una petición (cualquiera) y retornar un archivo cifrado. Intenté hacerlo así y funciona:
> 
> class HttpHandler(BaseHTTPRequestHandler):
>     def do_GET(self):
>         self.send_response(200)
>         self.send_header('Access-Control-Allow-Origin', '*')
>         self.send_header('Access-Control-Allow-Headers', 'X-Request, X-Requested-With')
>         self.send_header('Content-type', 'application/octet-stream')
>         self.end_headers()
>         encrypted_config = self.cifrar_configuracion()
>         self.wfile.write(encrypted_config)
> 
>     def cifrar_configuracion(self):
>         # String de configuracion que se cifra y se retorna
> 
> def main():
>     try:
>         server = HTTPServer(('127.0.0.1', 8000), HttpHandler)
>         print("Servidor corriendo en: 127.0.0.1:8000")
>         server.serve_forever()
>     except KeyboardInterrupt:
>         server.socket.close()
> 
> if __name__ == '__main__':
>     main()
> 
> Mis problemas surgieron cuando quise hacer esto "parametrizable": pasar un argumento posicional al script (nombre del archivo que contiene el texto de configuración), para lo cual intenté definir __init__(self, filename) dentro de la clase HttpHandler, de manera a instanciar el servidor así: server = HTTPServer(('127.0.0.1', 8000), HttpHandler("config.txt")
> 
> Este fue mi razonamiento obvio, pero luego me surgió el siguiente error: TypeError: 'HttpHandler' object is not callable
> 
> Por qué no puedo usar __init__ para inicializar la clase con un parámetro que necesito? También intenté llamar a super() pero dice que requiere las variables request, client_address y server.
> 
> Como no di con una solución resolví parsear el path del handler buscando el nombre del archivo específico, sin embargo, me quedé con la duda de este detalle de implementación.
> 
> Saludos!
> Eliseo.
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
> 
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> 
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130528/351f7a9c/attachment.html>


More information about the pyar mailing list