Articles of cherrypy

¿Cómo ejecutar el posprocesamiento asíncrono en CherryPy?

Contexto: Imagina que tienes una aplicación de palabras de CherryPy estándar: def index(self): return “Hello world!” index.exposed = True y le gustaría realizar un procesamiento posterior, es decir, el procesamiento de solicitudes de registro o simplemente registrar el hecho de que se nos llamó desde una IP específica. Lo que harías es probablemente: def index(self): […]

¿Cómo se usan las cookies y la autenticación básica HTTP en CherryPy?

Tengo una aplicación web de CherryPy que requiere autenticación. He trabajado la autenticación básica HTTP con una configuración que se parece a esto: app_config = { ‘/’ : { ‘tools.sessions.on’: True, ‘tools.sessions.name’: ‘zknsrv’, ‘tools.auth_basic.on’: True, ‘tools.auth_basic.realm’: ‘zknsrv’, ‘tools.auth_basic.checkpassword’: checkpassword, } } La autenticación HTTP funciona muy bien en este punto. Por ejemplo, esto me dará […]

Escribiendo un decorador CherryPy para autorización

Tengo una aplicación cherrypy y en algunas de las vistas quiero comenzar solo permitiendo que ciertos usuarios las vean y enviando a otra persona a una página de autorización requerida. ¿Hay alguna manera de hacer esto con un decorador personalizado? Creo que esa sería la opción más elegante. Aquí hay un ejemplo básico de lo […]

Deshabilitar los cifrados débiles con cherrypy (python 2)

Estoy usando Cherrypy 3.8.0 con Python 2 para usar SSL / TLS usando pyOpenSSL. Quiero deshabilitar SSL3 para evitar POODLE (u otros cifrados débiles). Esto es lo que tengo hasta ahora: server_config={ ‘server.socket_port’: 443, ‘server.ssl_module’:’pyopenssl’, ‘server.ssl_certificate’:’/path/myserver.crt’, ‘server.ssl_private_key’:’/path/myserver.key’, } Esto es similar a esta pregunta, pero para python 2 y pyopenssl. ¿Cómo puedo especificar o excluir […]

Error de socket: la dirección ya está en uso

Tengo un script CherryPy que ejecuto con frecuencia para iniciar un servidor. Hoy tuve que iniciarlo y detenerlo varias veces para corregir algunos errores en un archivo de configuración, y creo que el zócalo no se cerró completamente porque cuando intenté iniciarlo de nuevo, tuve este problema: [23/Mar/2015:14:08:00] ENGINE Listening for SIGHUP. [23/Mar/2015:14:08:00] ENGINE Listening […]

Unittesting cherrypy webapp

Hace poco tuve que volver a escribir nuestra API de descanso e hice el cambio de Flask a Cherrypy (principalmente debido a la compatibilidad con Python 3). Pero ahora estoy atascado tratando de escribir mis pruebas de unidad, Flask tiene un cliente de prueba integrado realmente ingenioso, que puede usar para enviar solicitudes falsas a […]

Silenciar a cherrypy

Tengo un servidor cherrypy que distribuye archivos xml a páginas web. Mientras mi servidor se ejecuta, cherrypy ofrece registros para cada página web solicitada indicando la fecha y la hora. Esta es una característica bastante agradable para el uso típico, pero con solicitudes que superan las 10 solicitudes por segundo, los registros pueden ser un […]

URL amigable para un servicio web REST con CherryPy

Estoy haciendo un servicio web RESTful utilizando CherryPy 3, pero tengo un problema: quiero poder responder a solicitudes como: / clientes / 1 / productos / 386, lo que significa que quiero todo el producto con ID 386 del cliente con ID 1. Así que trato de hacerlo con el MethodDispatcher de CherryPy’s así: class […]

cherrypy / dev / urandom (o equivalente) no encontrado – error

Estoy ejecutando un servidor cherrypy 3.2.0 con Python 2.5.1, que da el siguiente error cada pocos días en cualquier instrucción de la interfaz de usuario hasta que se elimina y se reinicia: [29/Mar/2012:06:37:57] HTTP Traceback (most recent call last): File “/usr/lib/python2.5/site-packages/CherryPy-3.2.0-py2.5.egg/cherrypy/_cprequest.py”, line 636, in respond File “/usr/lib/python2.5/site-packages/CherryPy-3.2.0-py2.5.egg/cherrypy/_cprequest.py”, line 97, in run File “/usr/lib/python2.5/site-packages/CherryPy-3.2.0-py2.5.egg/cherrypy/_cprequest.py”, line 57, […]

Sesiones CherryPy para el mismo dominio, puerto diferente.

Considere el siguiente guión. Lanzará dos subprocesos, cada uno de ellos una aplicación CherryPy (presione Ctrl + C o lo que sea que el combo KeyboardInterrupt esté en su sistema para terminar con ambos). Si lo ejecuta con CP 3.0 (teniendo cuidado de cambiar las líneas específicas 3.0 / 3.1 en “StartServer”), visite: http: // […]