Files

51 lines
1.8 KiB
Markdown

# Flask CRUD Example
CRUD-интерфейс на Flask + PostgreSQL. Аналог Lucee CRUD (`tfluceecrud`), работает с той же таблицей.
## Переменные окружения
| Переменная | По умолчанию | Назначение |
|-------------|---------------|---------------------------|
| `PGHOST` | `127.0.0.1` | Хост PostgreSQL |
| `PGPORT` | `5432` | Порт PostgreSQL |
| `PGDATABASE`| `postgres` | Имя БД |
| `PGUSER` | `postgres` | Пользователь |
| `PGPASSWORD`| (пусто) | Пароль |
| `TABLE_NAME`| `crud_items` | Имя таблицы (та же что у Lucee) |
| `PORT` | `5000` | Порт веб-сервера |
## Запуск
```bash
pip install -r requirements.txt
python app.py
```
Или через gunicorn:
```bash
gunicorn app:app -b 0.0.0.0:5000
```
При старте: `CREATE TABLE IF NOT EXISTS`**не дропает** существующую таблицу.
## Структура
```
.
├── app.py # Flask приложение
├── requirements.txt # Flask, psycopg2-binary, gunicorn
├── static/
│ ├── logo.svg # Nubes логотип
│ ├── favicon.svg # Nudes иконка
│ └── style.css # Nubes дизайн-система
└── templates/
└── index.html # Jinja2 шаблон
```
## Безопасность
- Параметризованные запросы (`%s`) → защита от SQL-инъекций
- `redirect` после POST → защита от повторной отправки
- Jinja2 автоэкранирование → XSS-защита