大家好!今天咱们来聊聊如何用Python和SQLite打造一个简单但功能齐全的招生管理系统。这个系统可以用来存储学生信息、课程信息以及他们的报名情况。听起来是不是很酷?接下来我们就一步一步来实现它!
首先,我们需要设计数据库结构。假设我们的系统需要以下几张表:
1. 学生表(students):包含学生的姓名、年龄等基本信息。
2. 课程表(courses):列出所有可选的课程及其详情。
3. 报名表(enrollments):记录每个学生选择了哪些课程。
接下来是创建数据库和表的代码:
import sqlite3 def create_tables(): conn = sqlite3.connect('recruitment.db') cursor = conn.cursor() # 创建学生表 cursor.execute(''' CREATE TABLE IF NOT EXISTS students ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER ); ''') # 创建课程表 cursor.execute(''' CREATE TABLE IF NOT EXISTS courses ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, description TEXT ); ''') # 创建报名表 cursor.execute(''' CREATE TABLE IF NOT EXISTS enrollments ( student_id INTEGER, course_id INTEGER, FOREIGN KEY(student_id) REFERENCES students(id), FOREIGN KEY(course_id) REFERENCES courses(id) ); ''') conn.commit() conn.close() create_tables()
然后我们可以编写一些辅助函数来添加数据。比如,添加新学生:
def add_student(name, age): conn = sqlite3.connect('recruitment.db') cursor = conn.cursor() cursor.execute("INSERT INTO students (name, age) VALUES (?, ?)", (name, age)) conn.commit() conn.close()
同样地,我们也可以添加课程和报名记录。最后,为了查看所有已报名的学生及其课程,可以使用如下查询:
def list_enrollments(): conn = sqlite3.connect('recruitment.db') cursor = conn.cursor() cursor.execute(""" SELECT s.name AS student_name, c.title AS course_title FROM students s JOIN enrollments e ON s.id = e.student_id JOIN courses c ON e.course_id = c.id; """) results = cursor.fetchall() for row in results: print(f"{row[0]} 注册了 {row[1]}") conn.close()
好了朋友们,这就是一个非常基础的招生管理系统的核心部分啦!你可以根据需求继续扩展功能,比如增加删除或修改记录的功能。希望这篇文章对你有所帮助,如果有任何问题欢迎留言讨论哦!
]]>