2011-10-12 14 views
6

Mam zamiar napisać dość wyrafinowaną aplikację z linii poleceń w Pythonie. Chciałbym wykorzystać coś innego niż tylko czysty python, być może framework lub coś, co ułatwia zarządzanie usługami i kodowaniem w aplikacji. Domyślam się, że myślę o MVC, ponieważ aplikacja będzie miała kilka różnych poleceń (kontrolerów), które wywołują różne źródła danych (żądania JSON, żądania REST itp., Np. "Modele" w MVC), a następnie wyświetla wyniki w różnych formatach (widok).aplikacja pythonowa i framework dla wiersza poleceń

Myślę, że MVC działa dobrze, ale tak naprawdę nie robię aplikacji internetowej. Chcę czegoś, co niekoniecznie wymaga serwera WWW, ale ma zalety struktury do wymuszania pewnych standardów kodowania.

Czy ktoś ma jakieś wskazówki lub sugestie? Wiem, że mogłem zbudować coś od podstaw w Pythonie, ale jestem ciekawy, czy jest coś jeszcze, co mógłbym wykorzystać.

Dzięki Dustin

Odpowiedz

0

Żeby być fair w stosunku do wzorca MVC nie jest zobowiązany do aplikacji internetowych. Wydaje mi się, że ze względu na trend sieciowy z ostatnich kilku lat ta relacja między MVC i aplikacjami internetowymi mogła wzrosnąć. Inaczej mówiąc, aplikacja internetowa może korzystać z MVC, ale korzystanie z MVC niekoniecznie oznacza, że ​​masz aplikację internetową.

Jeśli chcesz użyć frameworka, możesz spróbować użyć najbardziej zbliżonego do zamierzonego kontrolera. Nie jestem świadomy ram MVC, które mają interfejs wiersza polecenia jako interfejs, ale niektóre platformy GUI niezależne od platformy, które go używają to na przykład GTK+ lub QT: oba mają wiązania Pythona.

Z osobistego punktu widzenia wcześniej użyłem do tego celu Django. Chociaż techniczna czystość może być punktem dyskusji, przy wyborze struktury nikt nie zmusza do korzystania ze wszystkich komponentów struktury. Django ma świetny ORM, który tak bardzo mi się spodobał, że stworzyłem go dla interfejsu obsługiwanego przez SSH. To może być przesada, ale dla mnie miałem tę przewagę, że mogłem ponownie wykorzystać moją wiedzę na temat systemu, zamiast uczyć się nowego, kiedyś używanego systemu.

Podsumowując, wszystko sprowadza się do dyscypliny. Nawet najlepsze ramy nie mogą powstrzymać cię od łamania standardów kodowania i skracania narożników ...

PS jeśli korzystasz z systemu Linux, możesz rozważyć użycie modułu python o curses dla twojego interfejsu wiersza poleceń.

+0

Nie, MVC nie jest związane z aplikacjami sieciowymi :) http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller#History – Honza

20

To jest trochę późno, jednak księgowania dla każdego, kto natyka się na to:

Cement jest zaawansowanym CLI Application Framework for Python. Rozpoczęcie pracy jest łatwe i niezwykle elastyczne w dostosowywaniu niemal każdego elementu z logowania do parsowania pliku konfiguracyjnego. Cement2 (nazwa kodowa Portland) jest obecnie w fazie beta, ale jest bardzo blisko do stabilnego wydania:

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

Dodatkowo, jeśli tworzysz linię klienta polecenia REST, również kasy dRest:

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

Również bardzo łatwo jest zacząć, a także jest bardzo elastyczny w dostosowywaniu z obsługi żądania, do tego, jak serializacja odbywa się zarówno na końcach wysyłania, jak i odbierania.

Z przyjemnością odpowiem na wszelkie pytania dotyczące któregokolwiek z nich.

+0

FYI, Cement2.2 jest obecnie niedostępny stabilny na http://builtoncement.com/ – DuffJ

+0

Czy są jakieś tutoriale dla CEMENT innych niż DOCS? Wydaje się idealny do projektu, w którym jestem ... – ProfVersaggi