diff --git a/.env.example b/.env.example index 5444610..6dcfd5f 100644 --- a/.env.example +++ b/.env.example @@ -1,2 +1,10 @@ FLASK_ENV=production PORT=5000 + +# ── База данных PostgreSQL ── +DB_HOST=postgresqlk8s-master.xxx.svc.cluster.local +DB_PORT=5432 +DB_NAME=contracts +DB_USER=contracts +DB_PASS= +DB_SSLMODE=disable diff --git a/requirements.txt b/requirements.txt index 1ec318e..de46a10 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,3 +2,5 @@ flask gunicorn python-docx requests +psycopg2-binary +python-dotenv diff --git a/site/app.py b/site/app.py index 5e768f1..431818f 100644 --- a/site/app.py +++ b/site/app.py @@ -1,16 +1,38 @@ +import os +import psycopg2 +from dotenv import load_dotenv from flask import Flask, render_template +load_dotenv() + class ContractsApp: def __init__(self): self.app = Flask(__name__) + self.db = self._connect_db() self.add_routes() + def _connect_db(self): + try: + conn = psycopg2.connect( + host=os.getenv("DB_HOST"), + port=os.getenv("DB_PORT", 5432), + dbname=os.getenv("DB_NAME"), + user=os.getenv("DB_USER"), + password=os.getenv("DB_PASS"), + sslmode=os.getenv("DB_SSLMODE", "disable"), + ) + return conn + except Exception as e: + print(f"DB connect error: {e}") + return None + def add_routes(self): self.app.add_url_rule("/", "index", self.index) self.app.add_url_rule("/health", "health", self.health) def index(self): - return render_template("index.html") + db_status = "connected" if self.db else "no DB" + return render_template("index.html", db_status=db_status) def health(self): return "OK", 200, {"Content-Type": "text/plain"} diff --git a/site/templates/index.html b/site/templates/index.html index 91e3601..bcf5f06 100644 --- a/site/templates/index.html +++ b/site/templates/index.html @@ -9,5 +9,6 @@

Contracts App 🚀

Сервис работает.

+

База данных: {{ db_status }}