Платформа приложения базы данных Python и инструменты

Я использую многопоточный HTML5 Worker, который сможет прервать синхронный запрос XMLHttpRequest, указывающий на не отвечающий URL. Это не блокирует браузер.

https://gist.github.com/el-gringo/6990785

9
задан Cœur 24 September 2017 в 07:47
поделиться

5 ответов

Если ваше приложение в будущем должно работать как на настольном компьютере, так и в Интернете, вы можете рассмотреть возможность создания веб-приложения с распространяемым сервером. Такие вещи довольно легко сделать с Python как тривиальными способами, так и более мощными, такими как использование Twisted.

Если только рабочий стол - ваше направление, то действительно, как сказал Алекс, - переходите на PyQt. Он действительно прост в использовании и предоставляет очень мощные возможности графического интерфейса с универсальными привязками к БД.

Что касается БД - какую из них вы привыкли использовать? Если вы, скажем, гуру MySQL, было бы разумно сначала проверить привязки Python к MySQL. Для ORM определенно попробуйте SQLAlchemy.

Возможно, более подробная информация в вопросе поможет дать более полный ответ.


Подробнее (для вашего комментария):

Если PostgreSQL - ваше направление, Python имеет PyGreSQL в качестве привязки. Он имеет открытый исходный код, как и сам Python, поэтому у вас не должно возникнуть проблем с бесплатными приложениями для пользователя. Что касается Python, то я думаю, что это так. Учтите, что многие мощные веб-сайты используют Python (YouTube, Reddit, даже Google для некоторых приложений). Python также используется в нескольких крупномасштабных приложениях, таких как системы управления версиями Mercurial и Bazaar, а также менеджер списков рассылки mailman.

1
ответ дан 4 December 2019 в 11:44
поделиться

к вашему сведению, для PyQT в книге есть глава 15 с базами данных, это выглядит хорошо. и в книге есть кое-что с данными, просмотром и т. д. Я прочитал это и думаю, что оно того стоит :)

0
ответ дан 4 December 2019 в 11:44
поделиться

На вашем месте я бы, наверное, сначала посмотрел, работает ли веб-решение на основе Django. Если вам нужно немного улучшить внешний вид, добавьте в смесь jQuery. Если он предоставляет слишком мало функциональности, перейдите на PyQt. Если у вас много очень маленьких приложений, выбирайте сочетание технологий. Ниже вы найдете мои (довольно длинные) аргументы в пользу этой рекомендации.

Веб-приложение против настольного приложения

Год назад у нас была бизнес-база данных, и нам требовался интерфейс. Нам нужно было решить, какую технологию использовать для интерфейса. Мы рассмотрели:

  1. PyQt
  2. Веб-интерфейс (см. здесь для обзора веб-фреймов для Python)

Преимущества PyQt с нашей точки зрения:

  • Предыдущий опыт работы с C ++ с Qt , из которого мы узнали, что Qt подходит для этой задачи.
  • Включены все необходимые инструменты.
  • Легко разрабатывать многофункциональные клиенты.

Однако мы решили не использовать PyQt и вместо этого решили использовать веб-решение. Причины были:

  • Требования к интерфейсу были скромными и легко выполнялись в браузере. (в основном отчеты, некоторые формы для ввода данных или выполнения функций).
  • Развертывание приложения (и новые версии, исправления ошибок и т. д.) намного проще, поскольку все происходит только на сервере в контролируемой среде.
  • Контроль доступа / аутентификация / права предоставляются «бесплатно», так как это часть сервера (в нашем случае Apache с использованием аутентификации Active Directory) и браузера, что для нас важно.
  • Приложению в любом случае требовалось подключение к серверу. и не нужно было ничего хранить на стороне клиента.

В двух словах : многофункциональные интерфейсы с большим количеством функций в контролируемой среде развертывания, вероятно, легче реализовать с Qt. Что касается наших легких интерфейсов, нам казалось, что серверное решение лучше.

Какой веб-фреймворк?

Теперь, когда мы определились с технологией, нам нужно было выбрать фреймворк. Мы немного исследовали и подробно рассмотрели две альтернативы:

  1. Django
  2. Стек программного обеспечения, состоящий из CherryPy в качестве диспетчера (для сопоставления HTTP-запросов с функциональностью и всем сопутствующим материалом), Mako в качестве библиотеки шаблонов для создания сети -pages, SQLAlchemy как ORM и jQuery для клиентской функциональности.

Мы оценили две альтернативы и в конце остановились на второй. Решение было вызвано нашими действительно «легкими» требованиями к интерфейсу (множество очень маленьких приложений). Пакет программного обеспечения, который мы можем смешивать и сопоставлять по мере необходимости, нам показался лучше. Мы можем повторно использовать SQLAlchemy в ситуациях, когда нам не нужен веб-интерфейс, мы можем просто использовать CherryPy без библиотеки шаблонов и ORM и так далее. Однако во многих других случаях я бы предпочел Django этому стеку.

Подводя итог:

  • одно большое, сложное приложение -> PyQt
  • набор относительно похожих, простых отчетов, форм и т. Д. С единым интерфейсом -> Django
  • относительно разнообразный набор вещей, которые сильно различаются по требованиям и используемым технологиям или повторному использованию некоторых технологий в других обстоятельствах -> сочетание технологий по мере необходимости
12
ответ дан 4 December 2019 в 11:44
поделиться

На вашем месте я бы начал с django .

4
ответ дан 4 December 2019 в 11:44
поделиться

Как писал здесь Будевейн Ремпт, «для простейшего способа создания приложения [[НЕ-веб]] базы данных вы можете взглянуть на ] PyQt ". Он написал это 6 лет назад, но я думаю, что это совершенно верно и сегодня. Модуль pyqt4 QtSql , в частности, поддерживает MySQL, PostgreSQL и несколько других баз данных.

1
ответ дан 4 December 2019 в 11:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: