小明: 嘿,小华,我最近在做一个教师信息管理系统,你能帮我吗?
小华: 当然可以,我们先从需求分析开始吧。你希望这个系统具备哪些功能呢?
小明: 首先,我们需要能够添加、删除和修改教师的信息。其次,还需要查询特定条件下的教师信息,比如按姓名或工号搜索。
小华: 明白了,那我们先来设计数据库结构吧。假设我们使用MySQL数据库,那么我们可以创建一张名为`teachers`的表,包含以下字段:`id`(主键), `name`(姓名), `employee_id`(工号), `department`(部门)等。
小明: 这个好,那我们怎么用Python操作数据库呢?
小华: 我们可以使用Python的`mysql-connector-python`库来连接和操作数据库。首先需要安装库:`pip install mysql-connector-python`。然后我们可以通过下面的代码来实现基本的操作:
import mysql.connector
# 连接数据库
conn = mysql.connector.connect(
host="localhost",
user="root",
password="yourpassword",
database="school"
)
cursor = conn.cursor()
# 添加教师信息
def add_teacher(name, employee_id, department):
query = "INSERT INTO teachers (name, employee_id, department) VALUES (%s, %s, %s)"
values = (name, employee_id, department)
cursor.execute(query, values)
conn.commit()
# 查询教师信息
def search_teacher(employee_id=None, name=None):
query = "SELECT * FROM teachers WHERE "
if employee_id:
query += f"employee_id = '{employee_id}'"
elif name:
query += f"name = '{name}'"
cursor.execute(query)
return cursor.fetchall()
# 删除教师信息
def delete_teacher(employee_id):
query = "DELETE FROM teachers WHERE employee_id = %s"
cursor.execute(query, (employee_id,))
conn.commit()
# 修改教师信息
def update_teacher(employee_id, new_name=None, new_department=None):
query = "UPDATE teachers SET "
if new_name:
query += f"name = '{new_name}', "
if new_department:
query += f"department = '{new_department}'"
query += f"WHERE employee_id = '{employee_id}'"
cursor.execute(query)
conn.commit()
# 示例
add_teacher("张三", "T001", "计算机科学")
print(search_teacher(name="张三"))
delete_teacher("T001")
update_teacher("T002", new_name="李四")
小明: 太好了,这样我们就有了一个基础的教师信息管理系统了!接下来我们可以继续扩展其他功能。