Справка по топологии сервера - Django и витая возможность? - PullRequest
1 голос
/ 23 августа 2011

В настоящее время я работаю над сложным веб-интерфейсом и бэкэндом, которые должны решить несколько проблем.

  • Scalablility
    • несколько развертываний с различной нагрузкой
  • Очень структурированные группы авторизации
    • Различные представления для разных групп пользователей
    • панель администратора
      • управление пользователями / контентом
  • Большая управляемая база данных
    • текущий
    • долгосрочные сохраненные данные (истории)
  • Обновления данных
    • Опрос
      • Ex. Поисковые запросы, статические страницы / файлы, генерация отчетов по запросу
    • Pushing (вероятно, веб-сокеты)
      • Ex. Уведомления в режиме реального времени
  • Различные протоколы
    • Ex. HTTP, SSL, веб-сокеты

Я хотел бы использовать Python, потому что я вырос, чтобы действительно наслаждаться языком, и я рассматриваю некоторую комбинацию из Django и Twisted.

У меня есть некоторый опыт работы с Django, который мне нравится за стиль программирования приложений MVT, модели авторизации, панель администратора и API базы данных. Тем не менее, это не так сильно в некоторых требованиях к данным, которые мне нужны, в частности, в режиме реального времени.

Так вот, я раньше не использовал Twisted, но я видел много интересного. В частности, асинхронные аспекты и возможность запуска многих протоколов.

Проблемы в том, чтобы заставить этих двоих работать вместе, очевидны в том, что Django является блокирующим сервером, а Twisted разработан, чтобы быть неблокирующим. Я видел некоторые темы, в которых утверждается, что совместное использование этих двух вариантов возможно и имело успех. Также кажется возможным запустить оба и прокси-сервер, чтобы они принимали разные URL-адреса, но получить аутентификацию через них может быть сложно?

Сказав все это, я хотел бы спросить, нахожусь ли я на правильном пути для внедрения этой системы, а также предложения о том, как использовать два вместе, альтернативы, или я должен просто выкинуть один (в в этот момент, я думаю, это должен был быть Django, потому что в реальном времени нужны вещи). Я должен упомянуть, что я уже написал некоторые предварительные модели данных и представления в Django.

Я достаточно опытен в клиентской части (JS, CSS, HTML), но я не настолько разбираюсь в серверной части. Любой вклад будет полезен, спасибо.

1 Ответ

1 голос
/ 23 августа 2011

Вы определенно можете использовать Twisted с Django. Несколько проектов использовали два вместе для хорошего эффекта. twistd web --wsgi предоставляет базовый способ настройки , и есть отличный пример с большим количеством наворотов, таких как статический контент от Alex Clemesha на github.

...