张老师:小李,最近咱们学校打算开发一个研究生信息管理系统,你能不能给我介绍一下这个系统的核心功能和实现方法?
小李:好的,张老师。这个系统主要用来管理研究生的基本信息、课程安排、导师分配等。我们可以用Python语言结合SQLite数据库来实现。
张老师:听起来不错。那我们先从数据库的设计开始吧,怎么建表呢?
小李:首先需要创建三个表:学生表、课程表和导师表。学生表包括学号、姓名、专业等字段;课程表包含课程编号、名称、学分等;导师表则记录导师的ID和姓名。
张老师:明白了。接下来是如何用Python操作这些数据呢?
小李:我们可以使用sqlite3模块来连接数据库并执行SQL语句。比如,插入一条学生记录可以这样写:
import sqlite3
conn = sqlite3.connect('grad_student.db')
cursor = conn.cursor()
cursor.execute("INSERT INTO students (id, name, major) VALUES (?, ?, ?)", (1, '张三', '计算机科学'))
conn.commit()
conn.close()
张老师:代码看起来很简洁。那么查询所有学生的操作又该怎么写呢?
小李:很简单,只需要修改SQL语句即可:
cursor.execute("SELECT * FROM students")
rows = cursor.fetchall()
for row in rows:
print(row)
张老师:嗯,这确实方便快捷。如果我们要更新某个学生的专业怎么办?
小李:可以使用UPDATE语句,例如:
cursor.execute("UPDATE students SET major=? WHERE id=?", ('人工智能', 1))
conn.commit()
张老师:最后一个问题,安全性上需要注意些什么吗?
小李:当然,为了避免SQL注入攻击,我们应该始终使用参数化查询,就像前面的例子一样。
张老师:非常感谢你的详细解答!看来这个项目可行,我们可以开始了。