Pregunta

Estoy buscando para reemplazar devserver de AppEngine con de desove . El desove se ocupa de los manipuladores de WSGI estándar, al igual que appengine, por lo que ejecutar la aplicación en que es fácil.

Pero el devserver tiene en cuenta su archivo app.yaml que contiene una URL vuelve a dirigir etc. He estado yendo a través del código devserver y es bastante fácil de conseguir el BaseHTTPRequestHandler como esto:

from google.appengine.tools.dev_appserver import CreateRequestHandler
dev = CreateRequestHandler(os.path.dirname(__file__), '', require_indexes=False, static_caching=True)

Pero el BaseHTTPRequestHandler no es una aplicación WSGI, así que yo creo que tengo que poner algo alrededor de ella para hacer que funcione. ¿Alguna pista?

¿Fue útil?

Solución

No creo que vas a ser capaz de sacar una parte del dev_appserver y utilizarlo en un servidor WSGI costumbre tan fácilmente. El dev_appserver hace un montón de 'magia', y no está muy estructurado para ser retirado y se utiliza como un envoltorio WSGI en otro servidor (es una lástima).

Es posible que desee comprobar hacia fuera T wistedAE , que está trabajando en la creación de un suplente sirviendo medio ambiente; si realmente desea utilizar el desove, es probable que pueda utilizar el trabajo de TwistedAE como base.

Dicho esto, si desea hacerlo usted mismo, hay un par de opciones:

  1. Usted puede escribir su propia cuña para interactuar con la clase WSGI devuelto por CreateRequestHandler. En ese caso, es necesario replicar la interfaz en BaseHTTPServer .BaseHTTPRequestHandler desde el SDK Python . La conversión de WSGI a que, al igual que el código dev_appserver puede convertir de nuevo parece un poco perverso, sin embargo.
  2. Usted puede rasgar el código del método de _HandleRequest DevAppServerRequestHandler, modificarlo para trabajar con WSGI, y crear una aplicación WSGI de que (probablemente la mejor opción si quieres DIY).
  3. Usted puede empezar de cero, que creo que es el enfoque adoptado por TwistedAE.

Una cosa a tener en cuenta todo lo que hagan: App Engine espera explícitamente un entorno de un solo subproceso para sus aplicaciones. No utilice un enfoque multiproceso si quieres aplicaciones funcionando de la misma forma local como lo hacen en la producción o en la dev_appserver!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top