Files
db_example_app/README.md
T
2026-04-20 15:43:41 +03:00

97 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### Пример приложения для работы с БД
Небольшое десктоп-приложение на PyQt5 для работы с PostgreSQL, Neo4j, Apache AGE и InfluxDB 3 Core.
### Стек
- PyQt5 — графический интерфейс
- PostgreSQL (psycopg2) — реляционная БД для пользователей
- Neo4j — графовая БД
- Apache AGE — графовая БД в рамках PostgreSQL
- InfluxDB 3 Core — БД временных рядов
### Скриншоты
**PostgreSQL:**
![form.png](form.png)
**Neo4j:**
![neo_form.png](neo_form.png)
### Требования
- Python 3.10+
- Установленный PostgreSQL и доступ к серверу БД
- Установленный Neo4j и загруженный обучающий граф фильмов (Movie Graph example)
- Для Apache AGE: установленное расширение `age` в PostgreSQL и доступ к базе, где оно включено
- Для InfluxDB 3 Core: запущенный сервер, заранее созданная база и токен с правами на запись и чтение
### Настройка окружения
1. Переименовать файл примера переменных окружения `.env_example` в `.env`:
Затем откройте `.env` и при необходимости измените значения:
```env
POSTGRES_ACTIVE=false # включить PostgreSQL-часть приложения, установив true
POSTGRES_USER=postgres
POSTGRES_DB=university
POSTGRES_PASS=your_password
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
NEO_ACTIVE=false # включить Neo4j-часть приложения, установив true
NEO_USER=neo4j
NEO_PASS=your_password
NEO_HOST=neo4j://localhost:7687
AGE_ACTIVE=false # включить Apache AGE, установив true
AGE_USER=postgres
AGE_PASS=your_password
AGE_HOST=localhost
AGE_PORT=5432
AGE_DB=university
AGE_GRAPH_NAME=movie_graph
INFLUX_ACTIVE=false # включить InfluxDB 3 Core, установив true
INFLUXDB3_HOST=http://localhost:8181
INFLUXDB3_AUTH_TOKEN=your_token
INFLUXDB3_DATABASE=sensors
```
2. Создайте и активируйте виртуальное окружение:
Windows, PowerShell:
```powershell
cd C:\Users\Litoq\Documents\Projects\db_example_app
py -m venv .venv
.\.venv\Scripts\Activate.ps1
```
Linux, bash:
```bash
cd ~/Projects/db_example_app
python3 -m venv .venv
source .venv/bin/activate
```
3. Установите зависимости:
```bash
pip install -r requirements.txt
```
### Запуск приложения
В активированном виртуальном окружении выполните:
```powershell
py main.py
```
Для PostgreSQL, Neo4j, Apache AGE и InfluxDB 3 Core запросы также выполняются только при `*_ACTIVE=true`.