Python: ¿Cómo crear páginas web simples sin un marco enorme?

Me gustaría saber si hay una forma de crear páginas web sin un gran marco en python.

Pienso en algo como PHP / Apache, que viene solo como un lenguaje y no con mucha sobrecarga (pero no me gusta PHP …). En PHP no hay ORM, ni motor de plantillas, etc. Pero es muy fácil simplemente imprimir un Hello World al navegador.

Sé sobre Django y me gusta mucho, pero es un poco demasiado grande para portales web simples (5-10 páginas).

Realmente me gusta algo simple, sin instalar demasiado.

¿Has mirado hacia arriba Frasco ?

Es un marco mucho más minimalista, y muy fácil de configurar y comenzar.

He usado Flask (y bottle.py) en el pasado, pero en estos días en realidad prefiero Pyramid, de la gente de Pylons .

Pyramid es capaz de ser un marco grande y completo, está diseñado para ser flexible y no tiene escasez de complementos y extensiones disponibles que agreguen funcionalidad adicional, pero también es capaz de proyectos pequeños de un solo archivo; Vea este tutorial para un ejemplo .

Ir con Pyramid le dará espacio para crecer si sus necesidades se expanden con el tiempo, al mismo tiempo que conserva la capacidad de comenzar poco a poco.

Good old CGI es la forma más rápida de comenzar. En la mayoría de las configuraciones, solo necesita colocar un script de Python en ‘cgi-bin’ y hacerlo ejecutable, sin necesidad de instalar nada. Google para “cgi python”, hay muchos tutoriales, por ejemplo, este parece bastante decente.

No estoy seguro de lo que está mal con las páginas planas de Django para sus propósitos.

Otra alternativa sería reemplazar el sistema de plantillas django con algo más poderoso, como jinja, para que pueda escribir su sopa de tags y procesar allí, con una lógica mínima en la vista.

En la práctica (dado que ya sabe django), es probable que sea más fácil que usar un microframo (que requiere más progtwigdor, a cambio de no tener ninguna opción sobre nada).

mod_python tal vez?

Recomendaría CherryPy

 import cherrypy class HelloWorld(object): def index(self): return "Hello World!" index.exposed = True cherrypy.quickstart(HelloWorld()) 

Claro, puedes ir realmente inclinado con la ruta CGI o wsgiref . Sin embargo, obtienes lo que pagas y prefiero Flask o WerkZeug por todo el dolor que evitan.

Desde wsgiref python docs :

 from wsgiref.simple_server import make_server def hello_world_app(environ, start_response): status = '200 OK' # HTTP Status headers = [('Content-type', 'text/plain')] # HTTP Headers start_response(status, headers) return ["Hello World"] httpd = make_server('', 8000, hello_world_app) print "Serving on port 8000..." # Serve until process is killed httpd.serve_forever() 

Python funciona bien usando CGI.

eso es lo más simple que puede hacer: solo necesita apache y un entorno de trabajo de python, y es lo más parecido a una configuración de php estándar.

recuerde que, al usar CGI, su secuencia de comandos de Python es responsable de generar los encabezados HTTP necesarios ( sys.stdout.write('Content-Type: text/html\n\n') ), pero hay un módulo CGI que forma parte de la biblioteca estándar de Python que ayuda enormemente a manejar las materias primas (análisis de post / obtención de argumentos, recuperación de encabezados, generación de encabezados).