Pregunta

Estoy planeando portar una aplicación PHP a Python. La aplicación es principalmente sobre la recolección y procesamiento de datos. La aplicación principal se ejecuta como una aplicación de línea de comandos independiente. Hay una interfaz web para la aplicación que es básicamente una interfaz de informes muy ligera.

No usé un framework en la versión PHP, pero siendo nuevo en Python, me pregunto si sería ventajoso usar algo como Django o al menos Genshi. La advertencia es que no quiero que la distribución de mi aplicación se vea abrumada por las partes del marco que necesitaría distribuir con la aplicación.

¿Es el uso de solo la importación de cgi en Python la mejor manera de ir en esta circunstancia? Tendría a pensar que un marco es demasiado elevado, pero tal vez no esté pensando en una muy "python" forma acerca de ellos. ¿Qué sugerencias tienes en este escenario?

¿Fue útil?

Solución

La línea de comandos de Python, IMO, definitivamente es lo primero. Haz que funcione, ya que es el núcleo de lo que estás haciendo.

El problema es que el uso del ORM de un marco web desde una aplicación de línea de comandos no es obvio. Django proporciona instrucciones específicas para usar su ORM desde una aplicación de línea de comandos. Esos son molestos al principio, pero creo que a la larga son un salvavidas. Lo uso mucho para cargas gigantes de archivos proporcionados por el cliente.

No utilice CGI desnudo. No es imposible, pero muchas cosas pueden salir mal y todas han sido resueltas por los marcos. ¿Por qué reinventar algo? Solo usa el código de otra persona.

Los marcos implican aprendizaje, pero no " sobrecarga " ;. No son lentos Son códigos que no tienes que escribir o depurar.

  1. Aprende algo de Python.

  2. Haz el tutorial de Django

  3. Comienza a crear una aplicación web.

    a. Iniciar un proyecto Django. Crea una pequeña aplicación en ese proyecto.

    b. Construye tu nuevo modelo usando el ORM de Django. Crea una prueba unitaria de Django para el modelo. Asegúrate de que funcione. Podrás usar las páginas de administración predeterminadas y jugar mucho. Simplemente no construya el sitio web completo todavía.

  4. Haga que su aplicación de línea de comandos funcione con Django ORM. Esencialmente, debes ajustar el archivo de configuración para que esta aplicación funcione bien. Consulte la sección settings / configuration .

  5. Una vez que haya ejecutado su línea de comando y el administrador predeterminado, puede terminar la aplicación web.

Aquí está la regla de oro de los marcos: Es un código que no tienes que escribir, depurar o mantener. Úsalos.

Otros consejos

Podría considerar usar algo como web.py que sería fácil de distribuir (ya que es pequeño) y También puede ser fácil adaptar sus otras herramientas, ya que no requiere que se envíe al marco tanto como lo hace Django.

Tenga en cuenta que, sin embargo, no es el marco más querido de la comunidad de Python, pero podría ser justo lo que necesita. También puede consultar web2py , pero sé menos sobre eso.

Depende del tamaño del proyecto. Si solo tuviera unos pocos php-scripts anteriores que llamaban a su aplicación independiente, entonces probablemente buscaría una aplicación cgi.

Si tiene uso para bases de datos, reescritura de url, plantillas, administración de usuarios, etc., es una buena idea usar un marco.

Y, por supuesto, antes de portarlo, considere si vale la pena cambiar el idioma o si hay características específicas de Python que necesita.

¡Buena suerte!

Recientemente porté una aplicación PHP a Python usando web.py . A medida que avanzan los marcos, es extremadamente liviano con dependencias mínimas y tiende a mantenerse fuera de su camino, por lo que podría ser el compromiso que está buscando.

Sin embargo, todo depende de su aplicación inicial, ya que con una aplicación grande las ventajas de tener un marco de trabajo con todas las funciones que manejan la plomería tienden a superar las desventajas involucradas en tener que arrastrar todo el código del marco.

Django hace que sea posible sacar rápidamente un sitio web, eso es seguro. No es necesario ser un maestro de Python para usarlo, y como es muy pitón en su diseño, no hay realmente ninguna "magia" pasando, te ayudará a aprender Python en el camino.

Comience con los ejemplos, vea algunos screencasts de django de TwiD y estará en camino.

Comience despacio, modifique el administrador y juegue con él a través de shell es la manera de comenzar. Una vez que domines el ORM y entiendas cómo funcionan las cosas, ¡comienza a construir cosas reales!

El marco no va a causar ningún problema de rendimiento, como dijo S. Lott, es un código que no tiene que mantener y ese es el mejor tipo.

Ir para un marco. Los elementos básicos como el manejo de sesiones son una pesadilla si no usas uno porque Python no es un sitio web especializado como PHP.

Si crees que django es demasiado, puedes probar uno más ligero como el muy pequeño pero muy útil web.py.

¡Por el amor de Pete, usa un marco! Hay literalmente docenas de marcos por ahí, desde cherrypy a django a albatross a ... bueno ... lo que sea. De hecho, la gran cantidad de marcos web es lo que las personas señalan cuando se quejan de la popularidad de Rails.

La comunidad de desarrollo web de Python se divide sin una sola voz. ¡Pero ese es otro tema en conjunto! El punto es que hay " kits de herramientas web " (por ejemplo, albatros) que son bastante ligeros pero lo suficientemente potentes como para pasar el día (por ejemplo, la verificación automática de un bot no hizo un envío de formulario simple falso, ni ayudó a mantener limpio el MVC).

Si quieres algo que no sea " demasiado framework " mira aquí:

http://wiki.python.org/moin/WebFrameworks

Busque en " Marcos básicos que proporcionan plantillas " ;. Todos son livianos y hacen todo lo que " no reinventa la rueda " Cosas sin forzar un camión Mac en ti.

Depende de la forma en que va a distribuir su aplicación.
Si solo se usará internamente, ve por django. Es un placer trabajar con él. Sin embargo, django realmente se queda corto en la tarea de distribución; Las aplicaciones django son una tarea difícil de configurar.

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