Articles of wsgi

¿Cómo funciona django con virtualenv?

Entiendo cómo crear un virtualenv, activar ese virtualenv, y luego instalar django mientras el virtualenv está activado. Ex: virtualenv ~/narnia source ~/narnia/bin/activate pip install django Por lo que entiendo, cuando “activa” un entorno virtual, solo cambia algunas variables de ruta mientras está en un shell, nada más. Entonces, cuando django se instala con pip mientras […]

WSGI Middleware para la autenticación OAuth

He construido una aplicación web muy pequeña usando Flask . Ahora me gustaría agregar una autenticación muy básica al sitio (no necesito autorización). Como Flask no es compatible con autenticación y autenticación fuera de la caja, me gustaría conectar un middleware WSGI haciendo este trabajo. La aplicación web solo es utilizada por aproximadamente 10 personas, […]

¿Por qué no puedo instalar Python 2.7 en Centos 5.5?

Centos 5.5 viene con Python 2.4 instalado, y necesitaba Python 2.7 para un proyecto. Descargué la fuente, ejecuté, eliminé e intenté nuevamente con un par de versiones alternativas: ./configure && make && make install ./configure && make && make altinstall ./configure –prefix=/opt/python2.7 && make && make install Procedí a instalar setuptools y virtualenv (asegurándome de […]

WSGI: cuál es el propósito de la función start_response

¿Podría proporcionar un ejemplo en la vida real de la función start_response de WSGI ? (El servidor web proporciona esa función a la aplicación wsgi) No puedo entender el propósito de presentar la start_response . (He leído como 10 textos idénticos sobre el estándar WSGI. Todos dicen “El estándar WSGI es …” Ninguno de ellos […]

¿Cómo hacer que la impresión de la botella sea traza astackda cuando se ejecuta a través de apache modwsgi?

Al ejecutar Bottle como un servidor independiente, es muy fácil de hacer: from bottle import run, Bottle run(app=app, host=config.get(‘bottle_host’, ‘localhost’), port=config.get(‘bottle_port’, ‘8080’), debug=config.get(‘debug’, True), server=config.get(‘server_middleware’, ‘tornado’)) El problema es que con wsgi tengo que hacer esto: app = Bottle() Y el constructor de Bottle no tiene ningún parámetro de depuración. Entonces, ¿qué puedo hacer para […]

¿Por qué se está muriendo `node.js` cuando se llama desde python / uwsgi?

Desde el shell, este código de python que comienza y se comunica con un proceso node.js funciona bien: > from subprocess import * > js = “(function(m) { console.log(m) })(‘hello world’)” > (out,err) = Popen([“node”], stdin=PIPE, stdout=PIPE, stderr=PIPE, shell=False).communicate(js) > out “hello world\n” Pero cuando ejecuto el mismo código desde uwsgi , en lugar de […]

Error de mod_wsgi: clase .__ dict__ no accesible en modo restringido

Esto comenzó a morder nuestro trasero en nuestro servidor de producción muy duro. Vimos esto de vez en cuando (para 1 solicitud por semana). En ese entonces descubrimos que es debido a que mod_wsgi hacía algunas cosas extrañas en algunas configuraciones. Como no pudimos rastrear el motivo del error, decidimos que no requería atención instantánea. […]

¿Mi código impide el recorrido del directorio?

¿Es seguro el siguiente fragmento de código de una aplicación Python WSGI del recorrido de directorios? Lee un nombre de archivo pasado como parámetro y devuelve el archivo nombrado. file_name = request.path_params[“file”] file = open(file_name, “rb”) mime_type = mimetypes.guess_type(file_name)[0] start_response(status.OK, [(‘Content-Type’, mime_type)]) return file Monté la aplicación en http://localhost:8000/file/{file} y envié solicitudes con las URL […]

¿Por qué debería usar WSGI?

He estado usando mod_python por un tiempo, leo más y más artículos sobre lo bueno que es WSGI, sin entender realmente por qué. Entonces, ¿por qué debería cambiar a eso? ¿Cuales son los beneficios? ¿Es difícil, y la curva de aprendizaje vale la pena?

Comprensión de la persistencia global de objetos en aplicaciones WSGI de Python

Considere el siguiente código en mi aplicación WebApp2 en Google App Engine: count = 0 class MyHandler(webapp2.RequestHandler): def get(self): global count count = count + 1 print count Con cada actualización de la página, el recuento aumenta cada vez más. Vengo del mundo de PHP donde cada solicitud era un nuevo entorno global. Lo que […]