# 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-защита