zkt25/z2/app/app.py

61 lines
1.7 KiB
Python

from flask import Flask, request, render_template
import psycopg2
import os
app = Flask(__name__, template_folder=".")
# This function runs before the first request to create the users table if it doesn't exist
#@app.before_first_request
def init_db():
conn = psycopg2.connect(
host=os.environ.get("DB_HOST", "db-service"),
database=os.environ.get("DB_NAME", "userdb"),
user=os.environ.get("DB_USER", "user"),
password=os.environ.get("DB_PASS", "pass")
)
cur = conn.cursor()
# Ensure the users table exists
cur.execute("""
CREATE TABLE IF NOT EXISTS users (
id SERIAL PRIMARY KEY,
name TEXT,
surname TEXT,
middlename TEXT,
age INT
);
""")
conn.commit()
cur.close()
conn.close()
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
name = request.form['name']
surname = request.form['surname']
middlename = request.form['middlename']
age = request.form['age']
conn = psycopg2.connect(
host=os.environ.get("DB_HOST", "db-service"),
database=os.environ.get("DB_NAME", "userdb"),
user=os.environ.get("DB_USER", "user"),
password=os.environ.get("DB_PASS", "pass")
)
cur = conn.cursor()
cur.execute("INSERT INTO users (name, surname, middlename, age) VALUES (%s, %s, %s, %s)",
(name, surname, middlename, age))
conn.commit()
cur.close()
conn.close()
return f"Hi I am {name}, my middle name is {middlename}, and surname is {surname}, who's {age} years old."
return render_template("index.html")
if __name__ == "__main__":
app.run(host='0.0.0.0', port=5000)