EinfuehrungInDocker/Teil2/app/app.py
2024-04-12 22:09:33 +02:00

101 lines
3.1 KiB
Python

from flask import Flask, request, jsonify, render_template
import mysql.connector
app = Flask(__name__)
def employee_data():
# Connect to MySQL database
conn = mysql.connector.connect(
host='db', # Use the IP address or hostname of the MySQL container
port='3306', # MySQL port
user='root', # MySQL username
password='root_password', # MySQL password
database='employees' # Name of the database
)
# Create a cursor object to execute SQL commands
cursor = conn.cursor()
cursor.execute('SELECT Employee_Name, Title FROM employee_data')
results = cursor.fetchall()
cursor.close()
conn.close()
return results
# Endpoint to add a new entry to the database
@app.route('/add', methods=['POST'])
def add_entry():
# Connect to MySQL database
conn = mysql.connector.connect(
host='db', # Use the IP address or hostname of the MySQL container
port='3306', # MySQL port
user='root', # MySQL username
password='root_password', # MySQL password
database='employees' # Name of the database
)
# Create a cursor object to execute SQL commands
cursor = conn.cursor()
# Get data from request
data = request.get_json()
employee_name = data.get('employee_name')
title = data.get('title')
# SQL query to insert data into the employee_data table
sql_query = "INSERT INTO employee_data (Employee_Name, Title) VALUES (%s, %s)"
try:
# Execute the SQL query
cursor.execute(sql_query, (employee_name, title))
# Commit the transaction
conn.commit()
cursor.close()
conn.close()
return jsonify({'message': 'Entry added successfully'}), 200
except Exception as e:
# Rollback in case of any error
conn.rollback()
cursor.close()
conn.close()
return jsonify({'error': str(e)}), 500
# Endpoint to list all entries in the database
@app.route('/entries', methods=['GET'])
def get_entries():
# Connect to MySQL database
conn = mysql.connector.connect(
host='db', # Use the IP address or hostname of the MySQL container
port='3306', # MySQL port
user='root', # MySQL username
password='root_password', # MySQL password
database='employees' # Name of the database
)
# Create a cursor object to execute SQL commands
cursor = conn.cursor()
# SQL query to select all entries from the employee_data table
sql_query = "SELECT * FROM employee_data"
# Execute the SQL query
cursor.execute(sql_query)
# Fetch all entries
entries = cursor.fetchall()
# Convert entries to JSON format
entries_json = [{'Employee_Name': entry[0], 'Title': entry[1]} for entry in entries]
cursor.close()
conn.close()
return jsonify(entries_json), 200
@app.route('/')
def index():
#return jsonify({'Employee Data': employee_data()})
entries = employee_data()
return render_template('index.html', entries=entries)
#return "Hello world"
if __name__ == '__main__':
#app.run(debug = True, host='0.0.0.0')
app.run()