大家好!今天咱们来聊聊如何用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()
好了朋友们,这就是一个非常基础的招生管理系统的核心部分啦!你可以根据需求继续扩展功能,比如增加删除或修改记录的功能。希望这篇文章对你有所帮助,如果有任何问题欢迎留言讨论哦!
]]>
