¿Biblioteca / marco de Python recomendado para la aplicación web local?

Quiero crear una aplicación web LOCAL simple en Python.

El servidor web y el código de “back-end” se ejecutarán en el mismo sistema (inicialmente, sistema Windows) que la interfaz de usuario. Dudo que importe, pero la interfaz de usuario será un combo webish típico de Google Chrome, HTML, CSS, JavaScript y jQuery.

Hay un montón de marcos de progtwigción web basados ​​en Python, pero todos parecen diseñados para crear aplicaciones sofisticadas a gran escala con una gran cantidad de infraestructura de back-end. Quiero lo contrario: algo muy simple, liviano y fácilmente autocontenido: solo el servidor web y el marco suficientes para crear / admitir una aplicación web local.

Sugerencias?

Creo que web2py podría ser una gran solución aquí. No requiere instalación y no tiene dependencias (incluso viene con su propio intérprete de Python, así como un servidor web y la base de datos SQLite). Incluso puede distribuir su aplicación como un binario de Windows o Mac (incluido web2py), y los usuarios pueden ejecutarla localmente sin necesidad de instalación.

La botella es un micro-marco muy ligero. Viene como un único archivo .py sin dependencias externas, admite enrutamiento, una pequeña plantilla de motor y viene con un servidor web integrado. Es fácil de usar y delgado.

Esto suena como una combinación perfecta para sus necesidades 🙂

He escrito un puñado de estas aplicaciones de “servidor web local” desde que hice esta pregunta. No tengo una respuesta final de “cuál es el mejor marco”, pero sí tengo algunas ideas:

  1. Un simple o micro-marco es de hecho una buena opción.
  2. He probado los marcos de CherryPy y Flask. Flask es el claro ganador por simplicidad, ya que las funciones básicas de “configurar algunas páginas de servicio de AJAX” son completamente triviales para escribir en Flask. La documentación de CherryPy a menudo es opaca, y su complejidad de configuración es notablemente mayor.
  3. Estoy feliz con Flask, pero sigo mirando alrededor. Especialmente me gustaría probar Bottle, que he visto muy revisado, incluso en otras discusiones sobre StackOverflow y esta comparación lado a lado: http://www.slideshare.net/r1chardj0n3s/web-microframework-battle web2py también Parece que vale la pena intentarlo.

He utilizado BaseHTTPServer para este propósito. Es un servidor web integrado en la biblioteca estándar de Python y le permite tener un control total sobre el contenido que entrega.

Como es parte de la biblioteca estándar de Python, no tiene que preocuparse por ninguna configuración específica de la plataforma. He utilizado el mismo script del servidor local en un sistema Windows, Linux y Mac OS X sin modificaciones.

Una muestra de código podría ser:

 import BaseHTTPServer class Handler(BaseHTTPServer.BaseHTTPRequestHandler): def do_GET(self): self.send_response(200) self.send_header("Content-type", "text/html") self.end_headers() self.wfile.write("Hello world!") server_address = ('', 8080) httpd = BaseHTTPServer.HTTPServer(server_address, Handler) httpd.serve_forever() 

Un servidor muy simple en la biblioteca estándar es wsgiref.simple_server .

El ejemplo parece trivial ( demo_app también forma parte del módulo):

 from wsgiref.simple_server import make_server, demo_app httpd = make_server('', 8000, demo_app) print("Serving HTTP on port 8000...") # Respond to requests until process is killed httpd.serve_forever() 

No tengo experiencia directa, pero he escuchado algunas cosas buenas sobre web2py:

Django vs web2py para un desarrollador principiante

Pylons es extremadamente fácil de usar una vez que haya configurado la configuración, tendrá que tener una buena idea de lo que quiere.

Django viene con un servidor web incorporado que le permite probar completamente su aplicación localmente (a través de localhost:8080 o algo por el estilo). De hecho, lo he usado más de una vez para ejecutar una aplicación web completa localmente antes de implementarla en un servidor. No veo ninguna razón por la que no pueda usarlo para su propia aplicación web local. Aunque puede parecer que Django es grande y complejo, esta solución es autónoma y fácil de ejecutar:

  1. Instalar Django
  2. Vaya a través del excelente tutorial, que muy pronto le muestra cómo ejecutar el servidor web
  3. Escribe tu codigo

Eso es todo. Implementarlo en otras máquinas también es fácil de hacer, especialmente con algo como virtualenv .

Si no desea un gran marco web, tendré que BaseHTTPServer el consejo de Greg para usar BaseHTTPServer . Lo he usado antes para aplicaciones locales especializadas y está funcionando bien, haciendo lo que se espera de él y no mucho más. Es una solución muy flexible que le permite construir algo bastante personalizado si lo necesita.

es probable que desee una interfaz de administración para las operaciones básicas de CRUD en algunas tablas de base de datos. Entonces Django es tu mejor opción.

Cualquier marco hará esto. Django sin duda lo hará, pero ya que quieres algo más pequeño, recomiendo BFG / Pyramid, que es muy ligero, extremadamente extensible, flexible y divertido de usar. Pero hay muchos otros, y como se mencionó, el wsgiref integrado es tan ligero como se puede obtener. 🙂