Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > Создание веб-приложения


Автор: Ares4322 3.1.2012, 12:39
Доброго времени суток!
В данный момент у меня есть реализованное на Java и ее библиотеках веб-приложение, которое крутится на Tomcat, и обеспечивает CRUD между толстым JS-клиентом и БД. Так оно позволяет формировать отчеты.
Я в Питоне не большой специалист и еще меньший в его библиотеках и технологиях. Мой вопрос - как мне реализовать мою задачу на Питоне, будет ли это проще или сложнее и какие я могу встретить подводные камни?
Мне нужно:
  •  ORM, но не такой, как Hibernate, а как MyBatis, то есть чтобы можно было самому писать запросы по которым маппятся объекты;
  •  сериализатор/десериализатор объектов из/в json;
  •  возможность работы с сессиями;
  •  веб-сервер с пулом соединений к БД, логгированием и простой админской панелью;
  •  библиотека для формирования отчетов, типа как JasperReports.
Какие технологии, библиотеки и подходы можете посоветовать для этих задач?

Автор: cutwater 3.1.2012, 13:49
Фреймворка удовлетворяющего всем запросто боюсь не существует.

По пунктам

Django 

+ ORM, но не такой, как Hibernate, а как MyBatis, то есть чтобы можно было самому писать запросы по которым маппятся объекты;
+ сериализатор/десериализатор объектов из/в json;
+ возможность работы с сессиями;
+  веб-сервер есть
- пул соединений с БД скорей нет (точно ответить не могу)
+ логгирование
+ админская панель

Библиотеки для отчетов мне не известны

Flask + SQLAlchemy

+ ORM, но не такой, как Hibernate, а как MyBatis, то есть чтобы можно было самому писать запросы по которым маппятся объекты;
- сериализатор/десериализатор объектов из/в json; (вообще задача скорей всего решается руками за сравнительно без проблем)
+ возможность работы с сессиями; 
+  веб-сервер есть
+ пул соединений SQLA умеет
+ логгирование
- админской панели нет (3rdparty решения какие-то были, но мне точно не известны)

Веб сервера для development входят и в Django и в Flask, в Flask есть еще и веб дебаггер (точней он есть в werkzeug, на котором Flask построен)
Однако для production они мало пригодны, следует использовать полноценные решения с WSGI
К примеру uWSGI или Apache + mod_wsgi

Есть еще Pyramid (+ SQLAlchemy), в принципе то же что и Flask но более наворочено и энтерпрайзно.

Автор: Ares4322 3.1.2012, 14:40
Спасибо за развернутый ответ!
А есть для Питона что-нибудь похожее на JasperReports? То есть библиотека для работы с отчетами. Чтобы можно было делать шаблоны отчетов, а потом заполнять их из разных источников данных и перегонять в разные форматы?

Автор: Dagger 3.1.2012, 19:46
Есть tablib, не знаю деталей но ее у нас в oDesk PS используют для перегонки между форматами (Data->PDF/HTML/DOC).

По поводу Flask'a и сериализации данных - такое дело есть.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)