Я немного смущен тем, что подразумевается под «веб-приложением». т.е. Django позиционирует себя как «веб-фреймворк» для разработки «веб-приложений», что очень похоже на описание Pyramid. То, что я ищу, - это структура для приложения, которое имеет интерфейс браузера, но очень зависит от базы данных. Вкратце: это система, которая должна обрабатывать транзакции и подписки. Эти транзакции регистрируются через веб-интерфейс. Серверная часть состоит из каналов XML/JSON этих подписок/транзакций и административного интерфейса для создания статистики и отчетов. Очень похоже на систему продажи билетов / кассы. Теперь: это хорошее решение начать с чего-то вроде Django/Pyramid, хотя они кажутся более сосредоточенными на создании «веб-сайтов», а не (масштабируемых) «приложений» ввода/вывода. Есть ли какой-либо фреймворк Python, который мне лучше использовать, или он идеально подходит для того типа программного обеспечения, которое я описываю? Любая помощь будет принята с благодарностью!
Фреймворки Python: веб-сайт/CMS или приложение?
Ответы:
Я не знаю Pyramid на момент написания, поэтому я отвечу на часть Django, хотя я могу представить ответ, применимый к Pyramid, а также различие между веб-сайтами и веб-приложением довольно расплывчато.
Django подходит как для веб-сайтов, так и для веб-приложений: вы можете создать информативный веб-сайт для вашей локальной библиотеки, а также полноценное веб-приложение с множеством интерактивных функций. Django просто облегчает создание серверной части веб-системы. И веб-сайты, и веб-приложения используют базы данных, имеют кэширование и могут иметь интерактивные части с формами.
Просто веб-сайты обычно предназначены только для информирования пользователя (большинство сайтов) или взаимодействия с другими (например, форумы). Веб-приложение лучше всего описывается несколькими примерами, такими как веб-почта, административные интерфейсы, Google Docs и т. д.; он служит заменой настольного приложения.
С технической точки зрения нет четкой вещи, которая отделяет мир веб-сайтов от веб-приложений, это просто вопрос того, что вы создаете с помощью своей веб-инфраструктуры.
Чтобы ответить на ваш вопрос, Django вполне подходит для создания веб-приложения, управляемого базой данных, поскольку оно поддерживает несколько баз данных, кэширование, автоматическое создание и обработку форм и т. д. Я могу представить, что Pyramid также подходит, но я не могу ответить на это . Это хорошо, чтобы изучить ваши варианты.
Я считаю, что на этом этапе вы, возможно, захотите больше подумать об общей архитектуре вашего приложения, а не о фреймворках. Например
- Одноуровневый — простое веб-приложение, использующее простое хранилище файлов или объектов.
- Два уровня — веб-приложение + реляционная база данных. Веб-приложение содержит логику представления + бизнес-логику с использованием принципов MVC.
- Три уровня — веб-приложение + средний уровень + реляционная база данных. В этом случае средний уровень будет в основном содержать всю бизнес-логику и логику обработки. Веб-приложение — это просто уровень представления
Как только вы определитесь с архитектурой, вы можете начать думать о том, какую структуру использовать для каждого компонента архитектуры.
Я считаю, что продвижение таким образом будет менее запутанным и даст ясность мысли.