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-1.0.0.tar.gz (33.8 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-1.0.0-py3-none-any.whl (36.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: db_auto_interface-1.0.0.tar.gz
  • Upload date:
  • Size: 33.8 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-1.0.0.tar.gz
Algorithm Hash digest
SHA256 61698946062f8fb8e31635bdec37ba2cc4e719831a95df1d86d511047434e911
MD5 cd710a6ff7d87faa735f47f7d7d33260
BLAKE2b-256 0eaa41af000a6c9afda8c872c5536d68c9cc401d7300280e647e84d93c81090f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for db_auto_interface-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0c8ef1dc0d42843e713732609380077df76449c8ac0ce78be17f4783e0b5942b
MD5 5c3cb41fde3c37523bc4f4dce8c5652e
BLAKE2b-256 5a0a00dbf01ab7e434cb20c15448a600de329423651f5406e045385e41741fa0

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