Какой проект Python выбрать для приложения, насыщенного базой данных - PullRequest
1 голос
/ 25 мая 2011

Я планирую разработать довольно питательное веб-приложение (~ 100 таблиц) на python.Основное внимание уделяется обеспечению удобного и оптимизированного для задач интерфейса для людей, которые редактируют или перемещаются по данным.Другие направления:

  • Обработка большого количества данных и сложных запросов.
  • Интернационализация (перевод, часовые пояса, валюты)
  • Почтовые рассылки (массовые рассылки по электронной почте, а также уведомления)
  • Простая интеграция с другими веб-сайтами (получение данных или передача данных в приложение)
  • Схема проверки подлинности на основе ролей.(в идеале принудительное выполнение одной роли за раз)
  • Должно быть легко и быстро (для программистов на Python) создавать собственные формы и рабочие процессы для работы с данными.

Я имеюмного читал о django, turbogears, пирамиде, webcore,… но мне все еще трудно понять, с чего начать.

Моя текущая оценка предполагает, что турбогенераторы - это путь.Пирамида кажется слишком многим, чтобы учиться.Джанго, кажется, слишком сосредоточен на публикации.WebCore кажется немного незрелым, чтобы основывать на нем такой проект.

Я что-то упускаю?Существуют ли другие более подходящие платформы Python?Моя информация о некоторых из них просто неверна?Какие рамки вы бы выбрали для этого проекта и почему?

Ответы [ 4 ]

3 голосов
/ 25 мая 2011

По моему мнению, единственной частью django, которая может быть "слишком" ориентирована на публикацию, является администратор, но я видел множество приложений django, которые делают вещи аккуратно.

У Django есть множество приложений, охватывающих то, что вы хотите сделать, но единственным препятствием, которое вы можете найти, является часть: обработка большого количества данных и сложные запросы. Вы, вероятно, выйдете из земли ORM в Django, но вы можете даже покинуть землю SQLAlchemy. В большинстве этих проектов используются ORM, поэтому я бы сначала посмотрел на SQLAlchemy и оценил, как использовать его для своих нужд.

Во-вторых, я бы просто просмотрел учебники по следующим проектам, читать о них хорошо, но маленький небольшой учебник / проект (или мини-прототип) - единственный способ проверить, соответствует ли проект вашему стилю программирования: pyramid , турбогенераторы и джанго. У них есть самые большие общины. Лучший инструмент будет тот, с которым вы чувствуете себя более комфортно. Все они имеют хорошую, отличную документацию, хорошие поддерживающие сообщества и достаточно зрелые для серьезных проектов, и для очень тонких различий вы, вероятно, можете использовать любой из них для своих нужд.

2 голосов
/ 25 мая 2011

Я должен согласиться с вами: если у вас уже есть модель базы данных, Django - не лучший путь.

Что касается привязки базы данных, SQL Alchemy определенно стоитпроверка, независимо от того, какую платформу вы выберете.

Некоторые дополнения к вашему списку:

  • Web.py - Немного низкоуровневый, но приятныйзрелая среда (для использования SQLAlchemy см. кулинарную книгу по SQLAlchemy )
  • Tornado - Очень хорошая производительность, поддерживает веб-сокеты, которые могут представлять интерес для некоторых приложений

Редактировать: в настоящее время я бы рекомендовал Flask вместо Web.py.Торнадо очень хорошо с ним работает.

0 голосов
/ 25 мая 2011

Моя интуиция говорит, что вы хотите использовать SQLAlchemy в качестве ORM.Turbogears делает это «из коробки» и, вероятно, является крупнейшим игроком в пространстве «не Django».

Была некоторая работа по добавлению SQLAlchemy для (или в дополнение к!) ORM Джанго, но я нене знаю, насколько актуальна эта работа (быстрый поиск в Google нашел статьи 2008-2009 годов в числе самых популярных)

0 голосов
/ 25 мая 2011

Количество таблиц не имеет отношения к скорости и т. Д. И не имеет отношения к выбору каркаса.Рекомендация: использовать SQLAlchemy в качестве ORM между базой данных и приложением.Перейти на пирамиду в качестве веб-фреймворка.Пирамида является простой, хорошо документированной, тестовой и очень гибкой во всех аспектах.Формы и т. Д. Могут быть легко созданы с помощью дополнений «colander» + «deform».

...