Автоматический генератор desktop интерфейса для PostgreSQL БД
Project description
DB Auto Interface
Автоматический генератор 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
61698946062f8fb8e31635bdec37ba2cc4e719831a95df1d86d511047434e911
|
|
| MD5 |
cd710a6ff7d87faa735f47f7d7d33260
|
|
| BLAKE2b-256 |
0eaa41af000a6c9afda8c872c5536d68c9cc401d7300280e647e84d93c81090f
|
File details
Details for the file db_auto_interface-1.0.0-py3-none-any.whl.
File metadata
- Download URL: db_auto_interface-1.0.0-py3-none-any.whl
- Upload date:
- Size: 36.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c8ef1dc0d42843e713732609380077df76449c8ac0ce78be17f4783e0b5942b
|
|
| MD5 |
5c3cb41fde3c37523bc4f4dce8c5652e
|
|
| BLAKE2b-256 |
5a0a00dbf01ab7e434cb20c15448a600de329423651f5406e045385e41741fa0
|