From 2fe5e63b09bc20b4f488385d64b4efb5ef7c6cc5 Mon Sep 17 00:00:00 2001 From: Rob Hedgpeth Date: Fri, 12 Mar 2021 13:39:40 -0600 Subject: [PATCH] Added SQLAlchemy (part 1) blog sample --- mariadb_python_sqlalchemy/part_1/employees.py | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 mariadb_python_sqlalchemy/part_1/employees.py diff --git a/mariadb_python_sqlalchemy/part_1/employees.py b/mariadb_python_sqlalchemy/part_1/employees.py new file mode 100644 index 0000000..c99f57e --- /dev/null +++ b/mariadb_python_sqlalchemy/part_1/employees.py @@ -0,0 +1,71 @@ +import sqlalchemy +from sqlalchemy.ext.declarative import declarative_base + +# Define the MariaDB engine using MariaDB Connector/Python +engine = sqlalchemy.create_engine("mariadb+mariadbconnector://app_user:Password123!@127.0.0.1:3306/company") + +Base = declarative_base() + +class Employee(Base): + __tablename__ = 'employees' + id = sqlalchemy.Column(sqlalchemy.Integer, primary_key=True) + firstname = sqlalchemy.Column(sqlalchemy.String(length=100)) + lastname = sqlalchemy.Column(sqlalchemy.String(length=100)) + active = sqlalchemy.Column(sqlalchemy.Boolean, default=True) + +Base.metadata.create_all(engine) + +# Create a session +Session = sqlalchemy.orm.sessionmaker() +Session.configure(bind=engine) +session = Session() + +def addEmployee(firstName,lastName): + newEmployee = Employee(firstname=firstName, lastname=lastName) + session.add(newEmployee) + session.commit() + +def selectAll(): + employees = session.query(Employee).all() + for employee in employees: + print(" - " + employee.firstname + ' ' + employee.lastname) + +def selectByStatus(isActive): + employees = session.query(Employee).filter_by(active=isActive) + for employee in employees: + print(" - " + employee.firstname + ' ' + employee.lastname) + +def updateEmployeeStatus(id, isActive): + employee = session.query(Employee).get(id) + employee.active = isActive + session.commit() + +def deleteEmployee(id): + session.query(Employee).filter(Employee.id == id).delete() + session.commit() + +# Add some new employees +addEmployee("Bruce", "Wayne") +addEmployee("Diana", "Prince") +addEmployee("Clark", "Kent") + +# Show all employees +print('All Employees') +selectAll() +print("----------------") + +# Update employee status +updateEmployeeStatus(2,False) + +# Show active employees +print('Active Employees') +selectByStatus(True) +print("----------------") + +# Delete employee +deleteEmployee(1) + +# Show all employees +print('All Employees') +selectAll() +print("----------------") \ No newline at end of file