Какой проект Python выбрать для приложения, насыщенного базой данных

1

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

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

Я много читал о django, турбогерах, пирамиде, веб-обозревателе,... но мне все еще трудно найти, с чего начать.

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

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

  • 0
    Какую базу данных вы используете?
  • 0
    Я не склонен к какой-либо базе данных. Приложение будет основано на другом приложении, которое использует MySQL и собирается повторно использовать большие части своей модели базы данных.
Показать ещё 2 комментария
Теги:
web-applications
web-frameworks

4 ответа

3
Лучший ответ

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

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

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

  • 0
    Создание мини-прототипа в более чем одном из этих фреймворков действительно может быть подходящим вариантом. Сложная часть создания такого мини-прототипа состоит в том, чтобы охватить все, что может выходить за пределы фреймворка. Я хотел бы сократить список до максимум 3 (или, скорее, 2) фреймворков, прежде чем я начну создавать прототип.
  • 0
    @zwirbeltier: «вещи, которые могут выходить за пределы рамок». Вы не определили ничего в своем вопросе. То, о чем вы просите, достаточно просто и доступно в Django, TurboGears, WerkZeug и т. Д. Большинство веб-фреймворков Python очень хороши. Вот почему их так много, и они продолжают процветать. Если вы хотите уменьшить пространство, начните подбрасывать монеты. Шутки в сторону.
Показать ещё 1 комментарий
2

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

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

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

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

Изменить: теперь я бы рекомендовал Flask вместо Web.py. Торнадо прекрасно работает с ним.

0

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

0

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

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

  • 0
    Спасибо, это то, что я уже догадался об ORM. ORM в Django может стать узким местом, затрудняющим создание этого приложения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню