Посоветуйте Python фреймоврки

Selena

Доброй ночи, добродевелоперы!
После окончания в 2005-ом году ВМиК мои проф интересы далековато ушли от программирования. А хочется.
Вот думаю заняться велосипедом для души и мониторинга. Процесс, как говорится, в данном случае важнее результата.Идея сделать следующую штуку:
Windows клиент -> linux server -> БД -> веб-сервер с веб-фреймворком -> браузер
Вин клиент будет по сети отдавать простейшую инфу со счетчиков по процу, памяти, диску. Сервер на линкусе это будет принимать и складывать в бд. Ну и веб-интерфейс будет брать даныне из бд и рисовать красивые графики счастливому пользователю :)
Клиент, сервер и веб-интерфейс хочу писать на питоне. Не потому что большой опыт, а просто хочется на питоне. PyCharm даже купил :)
Так вот. Посоветуйте, пожалуйста, какие фреймворки/библиотеки смотреть?

khachin

PyCharm (тот, что платный) хорошо адаптирован для Django.
Я использую TurboGears 2. Сразу его использовать не советую, до смены сознания и понимания принципа у меня ушло от месяца (хотя я не с ВМиК, возможно, не так страшен черт).
TG2 — это солянка разных технологий, преднастроенных на взаимодействие. Онлайн справочник имеет кучу редакций, но ни одной полной и актуальной, т.к. компоненты время от времени меняются по отдельности у их авторов. Django в этом плане помонолитней.
Еще один плюс в сторону Django — он получил неплохую популярность и имеет большее комьюнити. Большая часть вопросов и проблем давно разобрана и хранится на разных форумах (stackoverflow в частности окажет хорошую помощь).
Тем не менее в виду большей опциональности и контролируемости я все-таки предпочитаю кушать кактус TG2.
Ну, про другие фреймворки может еще народ подтянется, расскажет...

Plok2008

Как альтернатива Django можно посоветовать Flask. По сути дела это роутер исходного запроса до питоновской функции + templates engine очень похожий на джанговский. А уже что-то более интересное, как связь с БД, формочки и т.д., можно либо самому рисовать, либо использовать соответствующие Flask extensions.
Как написали на stackoverflow, что же лучше выбрать на долгую перспективу, то Django проще для быстрого старта, но со временем, когда проект будет развиваться и жить своей жизнью, то от исходного Django (в силу требований кастомизации) только и останется, что роутинг и темплайтинг, т.е. что предоставляет Flask изначально.
Правда у Django по-больше комьюнити его использующее, а Flask развивает и поддерживает по сути 1-2 человека. Но если это не смущает, то можешь пробовать.

yroslavasako

а тебе nagios или zabbix не достаточно? Там если что можно написать и собственные плагины.

Selena

Zabbix и nagios, кончено, знаю. И scom тоже поднимал :-)
В перспективе идея сервиса у меня в простоте. Zabbix/nagios поднять не такая уж простая задача для админа-еникейщика, например, в конторе на 20-30 компов и пару тройку серверов. А у меня зарегался на сайте, качнул клиент и смотришь красивые графики в личном кабинете. Ну и в дальнейшем идея анализа проблем производительности на уровне приложений.
Это идея для хобби, попрогать хочется. Получится хорошо, не получится, значит опыт.

Selena

Все спасибо за советы, как я понял, по веб фреймворкам.
А что использовать для написания вин клиента и сервера на линуксе, принимающего инфу от клиента?

khachin

Так пусть тот же питон на линуксе и принимает. Например в Flask через POST. Главное — протокол сериализации для клиента и сервера определить общий, и пиши на чем хочешь.

yroslavasako

Ежели хочется всё делать самому, то могу посоветовать twisted для клиет-серверной сборки данных и nagare для отдачи веба. Первое - общепринятое решение, а второе - фановое, но вроде ты фана и хотел. Ещё вместо twisted можно юзать ZeroMQ, под питон он так же удобно, но на той стороне может иметь и сишный передачтик.
Протоколов сериализации под питон тьма-тьмущая. Гуглить, как ни странно, лучше их по запросу python RPC. Но учти, что все текстовые страшно жрут трафик. Я через обыкновенный gprs их протолкнуть не смог, когда решал похожую задачу.

psm-home

все текстовые страшно жрут трафик
и сжатие не спасает?

yroslavasako

и сжатие не спасает. Если передавать по лану - то хватает трафика, в gprs не влазит. Ну это я пытался 10 раз в секунду собирать данные. Чтобы точно заметить, кто и когда косячил.

Dimon89

Главное — протокол сериализации для клиента и сервера определить общий, и пиши на чем хочешь.
Protobuf - наше всё.

val63


Windows клиент -> linux server -> БД -> веб-сервер с веб-фреймворком -> браузер
1) простой windows-сервис на C#
2) cherrypy
3) любой sql
4) django, впрочем и того же cherrypy хватит за глаза, графики-то один фиг яваскриптом рисовать
5) firefox :-D
Оставить комментарий
Имя или ник:
Комментарий: