61 lines
1.7 KiB
Python
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)
|