2011-10-12 25 views
6

Voy a escribir una aplicación de línea de comandos bastante sofisticada en python. Me gustaría aprovechar algo más que solo python puro, tal vez un framework o algo que facilite la administración de servicios y códigos dentro de la aplicación. Supongo que en mi opinión, estoy pensando en MVC, ya que la aplicación tendrá varios comandos diferentes (controladores) que invocan diferentes fuentes de datos (solicitudes JSON, solicitudes REST, etc., por ejemplo, los "Modelos" en MVC), y luego mostrar los resultados en diferentes formatos (la Vista).línea de comandos aplicación y frameworks de python

Creo que MVC funciona bien para esto, pero realmente no estoy haciendo una aplicación web. Quiero algo que no requiera necesariamente un servidor web, pero tiene las ventajas de un marco para forzar algunos estándares de codificación.

¿Alguien tiene alguna sugerencia o sugerencia? Sé que podría construir algo desde cero con Python, pero solo tengo curiosidad si hay algo más que pueda utilizar.

Gracias, Dustin

Respuesta

0

Para ser justos con el patrón, MVC no está obligado a aplicaciones web. Creo que debido a la tendencia de los últimos años en cuanto a la Web, esta relación entre MVC y las aplicaciones web podría haber crecido. En otras palabras, una aplicación web puede usar MVC, pero usar MVC no significa necesariamente que tienes una aplicación web.

Si desea utilizar un marco, podría tratar de utilizar el más cercano a su controlador previsto. No conozco un framework MVC que tenga una línea de comando como interfaz, pero algunos frameworks GUI independientes de plataforma que lo usan son, por ejemplo, GTK+ o QT: ambos tienen enlaces de python.

Desde un punto de vista personal, he usado Django para este fin antes. Aunque la pureza técnica puede ser un punto de discusión, al seleccionar un marco de trabajo nadie le obliga a utilizar todos los componentes del marco. Django tiene un agradable ORM que me gustó tanto que lo convertí en el back-end de una interfaz operada por SSH. Puede ser exagerado, pero para mí tenía la ventaja de poder reutilizar mi conocimiento sobre el sistema en lugar de aprender un nuevo marco de trabajo para usar una vez.

En conclusión, todo se reduce a la disciplina. Incluso el mejor marco no puede evitar que viola los estándares de codificación y cuidar todos los detalles ...

PS si estás en Linux, es posible considerar el uso de módulos de Python curses para su interfaz de línea de comandos.

+0

No, MVC no está vinculado a las aplicaciones web :) http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller#History – Honza

20

Esto es un poco tarde, sin embargo la publicación de cualquier otra persona que se topa con esto:

El cemento es un marco de aplicación avanzada de la CLI para Python. Comenzar es fácil, y es extremadamente flexible para personalizar casi todas las partes, desde el inicio de sesión hasta el análisis de archivos de configuración. Cement2 (nombre en clave portland) se encuentra actualmente en fase beta, pero está muy cerca de una versión estable:

http://cement.readthedocs.org/en/portland/

Además, si va a crear un cliente de línea de comando REST, también comprobación Drest:

http://drest.readthedocs.org/en/latest/

También es muy fácil de empezar, y también es extremadamente flexible para la personalización desde el controlador de solicitudes, hasta cómo ocurre la serialización en los extremos de envío y recepción.

Estaré encantado de responder cualquier pregunta sobre cualquiera de los dos.

+0

FYI, Cement2.2 está fuera y estable en http://builtoncement.com/ – DuffJ

+0

¿Hay tutoriales para CEMENT que no sean DOCS? Parece perfecto para un proyecto en el que estoy ... – ProfVersaggi

Cuestiones relacionadas