Skip to main content

Библиотека для создания локального сайта для работы с таблицами PostgreSQL

Project description

PGAdmin Site

Библиотека для создания локального веб-интерфейса для работы с таблицами PostgreSQL.

Версия

v0.6.0

Установка и обновление

pip install pgadmin-site
pip install --upgrade pgadmin-site

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

  • site(...) — запуск локального сайта для работы с базой данных PostgreSQL и карточками.
  • tkinter_card_designer(...) — визуальный редактор шаблонов карточек (Tkinter, drag&drop, формулы, фильтры, кнопки).

site

from pgadmin_site import site
site(
    host="localhost",
    port=5432,
    username="postgres",
    password="password",
    database="your_database",
    web_port=5000,  # Порт для веб-интерфейса
    icon="path/to/icon.png",  # Путь к иконке
    foto="path/to/image.jpg true",  # Путь к изображению и флаг перемещаемости
    card="path/to/template_name.json"  # Путь к шаблону карточки
)

tkinter_card_designer

from pgadmin_site import tkinter_card_designer
tkinter_card_designer(
    username="postgres",
    password="пароль",
    database="mydb",
    host="localhost",
    port=5432
)

Возможности

  • Просмотр и редактирование таблиц PostgreSQL через веб-интерфейс (Flask + Bootstrap)
  • Импорт и экспорт данных (CSV, Excel)
  • Визуальный редактор карточек (Tkinter): поддержка фигур, формул, drag&drop столбцов, кнопок с фильтрами
  • Автоматическое построение JOIN по связям, подстановка данных из связанных таблиц
  • Кнопки на карточках с визуальным редактором запроса и фильтрами (AND/OR, подстановка из карточки)
  • Импорт/экспорт шаблонов карточек в JSON
  • Удаление карточки и связанных данных через модальное окно
  • Совместимость с любыми структурами БД PostgreSQL
  • Настройка favicon и добавление перемещаемых изображений
  • Отображение данных в виде карточек по шаблону

Параметры изображения

Параметр foto принимает путь к файлу изображения и опциональный флаг перемещаемости:

  • "path/to/image.jpg" - статическое изображение
  • "path/to/image.jpg true" - перемещаемое изображение
  • "path/to/image.jpg false" - статическое изображение

Перемещаемое изображение можно перетаскивать мышью по странице, и его позиция сохраняется между сессиями.

Параметры карточек

Параметр card позволяет отображать данные в виде карточек по заданному шаблону.

  • "template_name.json" - название шаблона карточки
  • Можно создавать свои шаблоны через tkinter_card_designer

Требования

  • Python 3.8+
  • PostgreSQL

Лицензия

MIT

Команды CLI

  • pgadmin-site — запуск локального веб-интерфейса для работы с PostgreSQL. Поддерживает параметры:

    • --host, -h — адрес сервера PostgreSQL (по умолчанию localhost)
    • --port, -p — порт PostgreSQL (по умолчанию 5432)
    • --username, -u — имя пользователя (по умолчанию postgres)
    • --password, -P — пароль (запрашивается интерактивно)
    • --database, -d — имя базы данных (по умолчанию postgres)
    • --web-port, -w — порт для веб-интерфейса (по умолчанию 5000)
    • --debug — режим отладки
    • --icon — путь к файлу иконки
    • --foto — путь к файлу изображения с опциональным флагом перемещаемости (true/false)
    • --card — название шаблона карточки (без .json)
  • from pgadmin_site import tkinter_card_designer — запуск визуального редактора карточек на Tkinter:

    • Позволяет создавать SVG-шаблоны карточек с drag&drop, формулами, кнопками, фильтрами и связями с БД.
  • from pgadmin_site import create_module_file — генерация примеров Tkinter-карточек:

    • create_module_file('modul(2)'), create_module_file('modul(3)'), create_module_file('modul(4)') — создаёт примеры модулей для работы с карточками и БД.

Основные возможности

  • Просмотр и редактирование таблиц PostgreSQL через веб-интерфейс (Flask + Bootstrap)
  • Визуальный редактор карточек (Tkinter): поддержка фигур, формул, drag&drop столбцов, кнопок с фильтрами
  • Автоматическое построение JOIN по связям, подстановка данных из связанных таблиц
  • Кнопки на карточках с визуальным редактором запроса и фильтрами (AND/OR, подстановка из карточки)
  • Импорт/экспорт шаблонов карточек в JSON
  • Удаление карточки и связанных данных через модальное окно
  • Совместимость с любыми структурами БД PostgreSQL
  • Настройка favicon и добавление перемещаемых изображений
  • Отображение данных в виде карточек по шаблону

Пример запуска

pgadmin-site --host localhost --port 5432 --username postgres --database mydb --web-port 5000 --icon path/to/icon.png --foto "path/to/image.jpg true" --card template_name

Пример запуска редактора карточек

from pgadmin_site import tkinter_card_designer
tkinter_card_designer(username="postgres", password="пароль", database="mydb")

Резервное копирование и восстановление

Резервное копирование базы данных PostgreSQL

pg_dump -U postgres -d furniture_db -F c -f furniture_db.backup

Восстановление из резервной копии

pg_restore -U postgres -d furniture_db --clean --create furniture_db.backup

Диагностика и устранение ошибок

  • Если сайт не запускается — проверьте параметры подключения к БД в example_site.py
  • Если не открывается страница — проверьте логи в консоли (выводятся ошибки)
  • Для диагностики проблем с БД используйте pgAdmin или DBeaver
  • Для восстановления данных используйте резервную копию (см. выше)

Обновление системы

  1. Остановите сервер (Ctrl+C)
  2. Обновите файлы проекта (git pull или копирование новых файлов)
  3. Проверьте, не изменились ли структура БД и зависимости (requirements.txt)
  4. Запустите сервер снова

Функция расчёта сырья

def calculate_material_quantity(product_type_id, material_id, product_quantity, param1, param2):
    """
    product_type_id: int — идентификатор типа продукции
    material_id: int — идентификатор материала
    product_quantity: int — количество продукции
    param1, param2: float — параметры продукции (например, длина и ширина)
    Возвращает: int — количество сырья с учётом потерь, либо -1 при ошибке
    """
    import psycopg2
    try:
        conn = psycopg2.connect(dbname='furniture_db', user='postgres', password='your_password')
        cur = conn.cursor()
        cur.execute('SELECT koef_product_type FROM product_types WHERE product_type_id=%s', (product_type_id,))
        row1 = cur.fetchone()
        cur.execute('SELECT percent_braka FROM material_type WHERE material_id=%s', (material_id,))
        row2 = cur.fetchone()
        if not row1 or not row2:
            return -1
        koef = float(row1[0])
        percent = float(row2[0])
        material_per_unit = param1 * param2 * koef
        total_material = material_per_unit * product_quantity * (1 + percent / 100)
        return int(total_material) + 1
    except Exception:
        return -1
    finally:
        if conn:
            conn.close()

Инструкция:

  • Передайте в функцию нужные параметры (id типа продукции, id материала, количество, параметры продукции)
  • Если тип или материал не найдены — функция вернёт -1
  • Результат — целое число, сколько сырья нужно с учётом потерь

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

pgadmin_site-0.9.0.tar.gz (52.5 kB view details)

Uploaded Source

Built Distribution

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

pgadmin_site-0.9.0-py3-none-any.whl (67.8 kB view details)

Uploaded Python 3

File details

Details for the file pgadmin_site-0.9.0.tar.gz.

File metadata

  • Download URL: pgadmin_site-0.9.0.tar.gz
  • Upload date:
  • Size: 52.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for pgadmin_site-0.9.0.tar.gz
Algorithm Hash digest
SHA256 65f5d235b14713a56dbdefd5091b1a85b1220b12f6601bfb4940d9c9377e297d
MD5 e94e4236c955874c2d41fbd37eacc047
BLAKE2b-256 998c918f78b40677458bafcc2d6aac8beec1d8420e493dcfc59e5ff63f93f77e

See more details on using hashes here.

File details

Details for the file pgadmin_site-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: pgadmin_site-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 67.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for pgadmin_site-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2d0c09067606ec1a18f7a79ec5b6b8f703f38bef9f4217dbddc7c18735bb608d
MD5 87cd01c66c865d6299afeccee8056ae7
BLAKE2b-256 9a72a7683605056ecdc588ccbddc65eb1fef7ac34d4c7aeab18e770d63d26584

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