[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