小明: 嘿,小李!我听说你最近在学习Python编程,而且对数据库也很熟悉。你能帮我设计一个教师管理系统的雏形吗?
小李: 当然可以!不过我们需要先规划一下功能需求。这个系统需要能添加、删除、修改和查询教师信息,你觉得怎么样?
小明: 听起来不错!那我们怎么存储这些数据呢?
小李: 我建议使用SQLite数据库,它轻便且易于集成到Python项目中。我们可以创建一张名为`teachers`的表来保存教师的信息。
小明: 好主意!那么具体的代码是什么样的呢?
小李: 首先,我们需要安装Python的sqlite3模块。然后编写如下的代码来初始化数据库:
import sqlite3
conn = sqlite3.connect('teachers.db')
cursor = conn.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS teachers (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, subject TEXT, years_of_experience INTEGER)''')
conn.commit()
conn.close()
小明: 太棒了!接下来是如何添加新的教师记录呢?
小李: 可以这样实现:
def add_teacher(name, subject, years_of_experience):
conn = sqlite3.connect('teachers.db')
cursor = conn.cursor()
cursor.execute("INSERT INTO teachers (name, subject, years_of_experience) VALUES (?, ?, ?)", (name, subject, years_of_experience))
conn.commit()
conn.close()
小明: 删除和更新记录又该如何处理呢?
小李: 对于删除,你可以这样做:
def delete_teacher(teacher_id):
conn = sqlite3.connect('teachers.db')
cursor = conn.cursor()
cursor.execute("DELETE FROM teachers WHERE id=?", (teacher_id,))
conn.commit()
conn.close()
至于更新记录,类似地:
def update_teacher(teacher_id, name=None, subject=None, years_of_experience=None):
conn = sqlite3.connect('teachers.db')
cursor = conn.cursor()
if name:
cursor.execute("UPDATE teachers SET name=? WHERE id=?", (name, teacher_id))
if subject:
cursor.execute("UPDATE teachers SET subject=? WHERE id=?", (subject, teacher_id))
if years_of_experience is not None:
cursor.execute("UPDATE teachers SET years_of_experience=? WHERE id=?", (years_of_experience, teacher_id))
conn.commit()
conn.close()
小明: 查询所有教师信息的功能怎么写呢?
小李: 查询非常简单:
def list_teachers():
conn = sqlite3.connect('teachers.db')
cursor = conn.cursor()
cursor.execute("SELECT * FROM teachers")
rows = cursor.fetchall()
conn.close()
return rows
小明: 这个手册看起来很实用!谢谢你,小李!
小李: 不客气,希望对你有所帮助!如果有任何问题,随时联系我。