2011-01-20 24 views
11

Recientemente he estado desarrollando con Python, y me encanta. Es un enorme paso de PHP como un lenguaje de scripting rápido (¡imagínese, no hay nombres de funciones locas!), Y me encantaría poder usarlo como un lenguaje de desarrollo web.Python como lenguaje de scripting web?

He oído hablar de Django, pero quiero algo un poco más simple.

Ejecuto Lighttpd, y ya he obtenido un script de Python para que funcione, pero no puedo pasarle argumentos a través de la URL, como http://localhost/index.py?foo=bar. ¿Hay una función/biblioteca que lo permita?

Podría estar yendo mal, así que por favor dígame si lo estoy. Pero absolutamente odio PHP, ahora que he visto Python. ;)

+11

Bienvenido al lado de la luz. – nmichaels

+1

¿Alguna desventaja para Python como lenguaje de servidor? ¿Por qué nadie lo usa si es tan increíble? – Blender

+1

Mucha gente lo usa. Hace un año tuve que vencer a los reclutadores que querían que yo hiciera cosas de Django con un palo (creo que finalmente se dieron cuenta de que he estado en un papel de front-end durante dos años). – Quentin

Respuesta

11

Si quiere un marco simple pero poderoso, pruebe Flask.

(Luego aprender algo SQLAlchemy, y de repente las cosas serán aún más fácil.)

+0

¡Dios mío, tardé 3 horas en hacer funcionar un proyecto simple de Django, y mucho menos trabajar de la manera que quería! Pero Flask es solo * brillante *. Fue la forma en que soñé que se veía en el lado del servidor :) – Blender

+0

Django brilla en proyectos con cierta estructura: donde principalmente se muestra contenido, en gran parte, y se necesita crear rápidamente interfaces de administración para publicar este contenido. No es muy fácil comenzar para un proyecto pequeño. Con Flask, no tienes toda esta maquinaria elegante, pero puedes poner todo un proyecto en un solo archivo. (Dos, preferiblemente: una configuración separada es conveniente.) – 9000

+0

Bueno, Flask era bueno para mi aplicación de libros pequeños. Hay poca interacción de administrador. – Blender

4

Suponiendo que está utilizando una interfaz CGI, el módulo cgi.

+0

Mi sitio web personal es varios años mayor que Django y está escrito casi en su totalidad en el CGI de Python. Es genial. – nmichaels

+0

Wow, pensé que CGI era un lenguaje extraño usado para cosas raras. Creo que tenemos un ganador (esperaré por un tiempo, solo para ver lo que otras personas tienen que decir). Pero definitivamente estoy jugando con esto (PHP acaba de ser exterminado: P). – Blender

+1

CGI es una forma estándar (pero relativamente lenta e ineficiente) para que un servidor web ejecute un programa (que solo necesita ser ejecutable, el protocolo es independiente del idioma) y obtiene una respuesta de este en lugar de un archivo estático. En general, uso FastCGI en estos días, que es similar, pero mantiene el programa en ejecución, por lo que no tiene los costos de inicio (que son el gran inconveniente de CGI). – Quentin

2

Puedo recomendar Django muy altamente. No es tan complicado. Lo que creo que está buscando por el momento, sin embargo, es http://webpy.org/.

2

Puede usar CGI, pero es poco intuitivo y muy doloroso para trabajar con (en comparación con las alternativas). Si desea aliviar ese dolor, sugeriría usar un marco. Existen bastantes frameworks, los más populares son Django, Pylons y algunos otros. Puede ver una lista completa here y decidir por usted mismo.

Si está buscando algo lleno de pila, Django. Si quieres algo pequeño, Flask, web2py y muchos otros funcionan.

1

Puede usar WSGI, que es una interfaz estándar entre servidores web y aplicaciones web o frameworks de Python. Este tutorial es realmente útil para comenzar con WSGI. Incluye el análisis de solicitudes GET y POST (como mencionó en la pregunta).

+0

Aquí está el documento correspondiente de los documentos oficiales http://www.python.org/doc//current/library/wsgiref.html#module-wsgiref –

3

Puede ver el proyecto so-starving para ver una sencilla aplicación escrita en una variedad de diferentes frameworks web de python, ¡y elija una que acepte!

no puedo pasar argumentos a la misma a través de la URL , como .../index.py?foo=bar. ¿Hay una función/biblioteca que permita esto?

Cualquiera de los marcos de Python disponibles le permite personalizar su URL a funciones específicas de python. La URL anterior se vería más como .../blog/foo/bar y su aplicación sabría qué hacer con los bits adicionales.

En una nota personal, secundo la recomendación para Flask: es un gran microframework para principiantes, así como útil para profesionales que trabajan en proyectos pequeños.

También me enamoré del framework Pyramid, que es un poco más complejo pero se adapta muy bien para aplicaciones más grandes.

+0

Gracias por el enlace –

+0

+1 para el enlace. – 9000

1

Estoy un poco sorprendido de que nadie haya llamado Turbogears (http://turbogears.org/) todavía. Es bastante nuevo, pero promete mucho y lo encuentro bastante simple y fácil de usar. No he probado muchos otros como thorrowly aunque por lo que puede ser que falte hacia fuera :)

Voy a comprobar ahora, sin embargo FRASCO: P

Cuestiones relacionadas