Articles of cherrypy

fastcgi, cherrypy y python

Así que estoy tratando de hacer más desarrollo web en python, y elegí cherrypy, alojado por lighttpd w / fastcgi. Pero mi pregunta es muy básica: ¿por qué necesito reiniciar lighttpd (o apache) cada vez que cambio mi código de aplicación, o el código de una biblioteca subyacente? Me doy cuenta de que esta pregunta […]

¿Por qué Django y CherryPy no admiten el envío HTTP basado en verbos de forma nativa?

No es lo mismo POST a una URL que OBTENERLO, BORRARLO o PONERLO. Estas acciones son fundamentalmente diferentes. Sin embargo, Django parece ignorarlos en su mecanismo de despacho. Básicamente, uno se ve forzado a ignorar los verbos HTTP completamente o hacer esto en cada vista: def my_view(request, arg1, arg2): if request.method == ‘GET’: return get_view(request, […]

Aplicación web Python (CherryPy) implementada localmente, pero no visible a través de la intranet

He creado una aplicación web de Python con CherryPy y la he implementado en mi máquina local. Cuando trato de verlo desde otra computadora en la casa, nada vuelve. Sin embargo, si creo un archivo html simple y lo implemento con: $ python -m SimpleHTTPServer Es visible en la intranet. Estoy perplejo en cuanto a […]

Combinando el despachador REST con el predeterminado en una sola aplicación CherryPy

Estoy tratando de hacer que CherryPy maneje la solicitud a /api través de cherrypy.dispatch.MethodDispatcher() y todas las demás solicitudes (como / ) a algún despachador predeterminado. Después de leer el documento de CherryPy no tengo idea de cómo hacer esto. Usan ambos métodos de enrutamiento solo por separado, pero esto es algo tan básico que […]

¿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 […]