101 lines
3.1 KiB
Python
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()
|