[pyar] Duda sobre implementación de BaseHTTPRequestHandler

Alejandro M. Bernardis alejandro.bernardis en gmail.com
Mar Mayo 28 11:15:36 ART 2013


Hola,
La configuración es única, o bien por cada usuario tendrías una en particular?

Lo que te queda es pasar la ruta del archivo como variable en el request, o bien acceder al mismo dentro del método do_get().


Slds 
A

Enviado desde mi iPhone

El 28/05/2013, a las 07:45, Eliseo Ocampos <roskoff en gmail.com> escribió:

> Hola Alejandro,
> 
> 2013/5/28 Alejandro M. Bernardis <alejandro.bernardis en gmail.com>
>> 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}
> 
> Genial, pero cómo haría para "servir" el contenido de settings.py en forma cifrada desde el do_GET? Esa es la duda que me quedó.
>  
>> 
>> También podrías utilizar Tornado Web Server (async) u otro que se le parezca.
>> 
>> http://www.tornadoweb.org/en/stable/
> 
> Esta opción no la consideré, pero podría probarla eventualmente. La idea es tener el script (en lo posible) con los módulos básicos que provee Python (por eso usé BaseHTTPRequestHandler). De igual manera gracias por la sugerencia!
>  
>> 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
>> 
>> 
>> _______________________________________________
>> 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
> 
> _______________________________________________
> 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/8ae924d3/attachment.html>


More information about the pyar mailing list