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)