Skip to main content

Автоматический генератор desktop интерфейса для PostgreSQL БД

Project description

DB Auto Interface

Python Version License

Автоматический генератор desktop интерфейса для PostgreSQL баз данных

Библиотека создает полнофункциональный графический интерфейс для работы с любыми таблицами PostgreSQL БД без необходимости написания кода. Все определяется автоматически на основе структуры базы данных.

🚀 Возможности

  • 🔍 Автоматический анализ схемы БД - автоматически определяет структуру таблиц, связи и типы данных
  • 🧭 Навигация между таблицами - автоматическое построение карты переходов между связанными таблицами
  • ✏️ CRUD операции - создание, чтение, обновление и удаление записей
  • 📝 Динамические формы - автоматическое создание форм редактирования на основе структуры таблиц
  • 🔎 Поиск и фильтрация - встроенный поиск по данным
  • 📄 Пагинация - эффективная работа с большими таблицами
  • 🎨 Современный UI - интерфейс на основе tkinter/ttk
  • 🔗 Работа с внешними ключами - автоматические комбобоксы для связанных таблиц

📋 Требования

  • Python 3.8 или выше
  • PostgreSQL база данных
  • psycopg2-binary (устанавливается автоматически)

💾 Установка

Установка из PyPI (когда опубликована)

pip install db-auto-interface

Установка из исходников

# Клонируйте репозиторий или распакуйте архив
cd db_auto_interface_package

# Установите библиотеку
pip install .

# Или в режиме разработки
pip install -e .

Установка из локального архива

# Создайте архив
python setup.py sdist bdist_wheel

# Установите из архива
pip install dist/db-auto-interface-1.0.0.tar.gz

🎯 Быстрый старт

Простой пример

from db_auto_interface import DBAutoInterface

# Параметры подключения
connection_params = {
    'host': 'localhost',
    'database': 'your_database',
    'user': 'postgres',
    'password': 'your_password',
    'port': 5432
}

# Создаем и запускаем приложение
app = DBAutoInterface(connection_params=connection_params)
app.run()

Расширенный пример

from db_auto_interface import UniversalDB, DBAutoInterface

# Создание подключения
db = UniversalDB()
db.connect({
    'host': 'localhost',
    'database': 'my_db',
    'user': 'postgres',
    'password': 'password'
})

# Анализ схемы
schema = db.get_schema()
print(f"Найдено таблиц: {len(schema)}")

# Запуск интерфейса
app = DBAutoInterface(db_connection=db)
app.run()

Использование из командной строки

После установки библиотеки доступна консольная команда:

# Установите переменные окружения
export DB_HOST=localhost
export DB_NAME=my_database
export DB_USER=postgres
export DB_PASSWORD=password

# Запустите приложение
db-auto-interface

📁 Структура проекта

db_auto_interface/
├── __init__.py              # Экспорт основных классов
├── core/                    # Ядро библиотеки
│   ├── db_schema.py         # Анализатор схемы БД
│   ├── universal_db.py      # Универсальный класс для работы с БД
│   └── navigation.py        # Система навигации между таблицами
├── ui/                      # Графический интерфейс
│   ├── main_app.py          # Главное приложение
│   ├── table_view.py        # Виджет просмотра таблиц
│   ├── record_form.py       # Формы редактирования
│   └── widgets.py           # Дополнительные виджеты
└── utils/                   # Утилиты

📖 Документация

Подробная документация доступна в репозитории проекта:

  • Примеры использования
  • API документация
  • Руководство разработчика

🧪 Тестирование

# Запуск тестов
python -m pytest tests/ -v

📦 Использование в других проектах

Установка как зависимость

# В setup.py вашего проекта
install_requires=[
    'db-auto-interface>=1.0.0',
]

Импорт в коде

from db_auto_interface import DBAutoInterface, UniversalDB

# Использование...

🔧 Основные компоненты

UniversalDB

Универсальный класс для работы с базой данных:

from db_auto_interface import UniversalDB

db = UniversalDB()
db.connect({
    'host': 'localhost',
    'database': 'test_db',
    'user': 'postgres',
    'password': 'password'
})

# Получение схемы
schema = db.get_schema()

# Получение данных таблицы с пагинацией
data = db.get_table_data('users', page=1, page_size=50)

# CRUD операции
db.insert_record('users', {'name': 'John', 'email': 'john@example.com'})
db.update_record('users', user_id, {'name': 'Jane'})
db.delete_record('users', user_id)

DBAutoInterface

Главное приложение с графическим интерфейсом:

from db_auto_interface import DBAutoInterface

app = DBAutoInterface(connection_params={
    'host': 'localhost',
    'database': 'test_db',
    'user': 'postgres',
    'password': 'password'
})
app.run()

💡 Особенности

Автоматическое определение схемы

Библиотека автоматически анализирует структуру базы данных:

  • Определяет все таблицы
  • Анализирует столбцы и их типы
  • Находит первичные и внешние ключи
  • Строит карту связей между таблицами

Навигация между таблицами

Автоматически определяет:

  • Точки входа - таблицы без входящих ссылок
  • Связующие таблицы - таблицы с внешними ключами
  • Последовательность заполнения - оптимальный порядок создания записей
  • Циклические зависимости - обнаружение циклов в схеме

Динамические формы

Формы автоматически создаются на основе структуры таблицы:

  • Текстовые поля для строк
  • Числовые поля для чисел
  • Комбобоксы для внешних ключей
  • Чекбоксы для boolean значений
  • Текстовые области для больших текстов

Валидация данных

Автоматическая валидация на основе типов данных PostgreSQL:

  • Проверка обязательных полей
  • Валидация типов данных
  • Проверка ограничений

⌨️ Горячие клавиши

  • Ctrl+S - Сохранить изменения
  • Ctrl+F - Поиск
  • F5 - Обновить таблицу
  • Ctrl+R - Обновить схему
  • Ctrl+Q - Выход

📝 Лицензия

MIT License - см. файл LICENSE

🤝 Поддержка

Для вопросов и предложений создавайте issues в репозитории проекта.

📚 Дополнительные ресурсы

  • Архитектура: См. документацию в репозитории
  • Примеры: См. примеры в репозитории
  • Тесты: tests/ в репозитории

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

db_auto_interface-2.0.0.tar.gz (42.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

db_auto_interface-2.0.0-py3-none-any.whl (46.4 kB view details)

Uploaded Python 3

File details

Details for the file db_auto_interface-2.0.0.tar.gz.

File metadata

  • Download URL: db_auto_interface-2.0.0.tar.gz
  • Upload date:
  • Size: 42.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for db_auto_interface-2.0.0.tar.gz
Algorithm Hash digest
SHA256 642358b03ecfcd8860cc05e427a748e0b6e8caa3221a47fbb1f14b3806c43991
MD5 f7689fb9851453d68d8746d4d69e278e
BLAKE2b-256 f3abfcff99ec4c8ece42a839bc2ccbc1759a2f7f0a4a7512493887d22ab32a65

See more details on using hashes here.

File details

Details for the file db_auto_interface-2.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for db_auto_interface-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1e2dd478e1b0c6eef9eccf1ca1235c77918ab3f49e7225a137b939bbed4a9a8b
MD5 78c1c825b7e05398f90e8cd853145970
BLAKE2b-256 f94d290c6da2a8e2cc465c12746c1236a96ae48b4990091414d32467f1548b6e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page