学工管理系统




小明(M): 嘿,小华,最近我们学校计划在青海地区引入一个学生管理信息系统,你觉得我们应该怎么开始呢?
小华(H): 首先我们需要明确这个系统的需求,比如需要记录哪些数据,如何保证数据的安全性等。
M: 对,比如学生的个人信息、成绩、课程安排等等,这些都是基本需求吧。
H: 正确。接下来我们可以考虑使用哪种技术栈来实现这个系统。考虑到成本和维护方便,我建议使用Python语言进行开发,并采用MySQL作为后端数据库。
M: Python和MySQL听起来不错。那我们怎么设计数据库呢?
H: 数据库设计应该基于需求分析的结果。比如说,我们可以创建一个名为students的表,里面包含id(主键)、name(姓名)、age(年龄)、grade(年级)等字段。
M: 明白了。那我们现在就来写一些基础的Python代码,用于连接数据库并执行一些基本操作吧。
H: 好的,这是连接MySQL数据库的代码示例:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="student_info"
)
H: 然后我们可以定义一个函数,用于向数据库添加新学生的信息:
def add_student(name, age, grade):
cursor = mydb.cursor()
sql = "INSERT INTO students (name, age, grade) VALUES (%s, %s, %s)"
val = (name, age, grade)
cursor.execute(sql, val)
mydb.commit()
M: 这样我们就能够将学生的基本信息存储到数据库中了。下一步就是查询和更新信息了。
H: 是的,查询信息可以通过以下方式实现:
def get_students():
cursor = mydb.cursor()
cursor.execute("SELECT * FROM students")
result = cursor.fetchall()
return result
H: 更新信息则可以这样处理:
def update_student(student_id, name=None, age=None, grade=None):
cursor = mydb.cursor()
sql = "UPDATE students SET "
params = []
if name:
sql += "name=%s, "
params.append(name)
if age:
sql += "age=%s, "
params.append(age)
if grade:
sql += "grade=%s, "
params.append(grade)
sql = sql[:-2] + " WHERE id=%s"
params.append(student_id)
cursor.execute(sql, tuple(params))
mydb.commit()