用Python打造一个校友会管理系统:从零开始的实战教程
嘿,大家好!今天咱们来聊一聊怎么用Python做一个校友会管理系统。你可能觉得这个项目听起来有点高大上,但其实一点都不难,只要你懂点基础的编程知识,就能搞定。我就是想通过这篇文章,带你们从0开始一步步搭建一个简单的校友会管理系统,让你明白Python到底能做些什么。
先说一下,什么是校友会管理系统?简单来说,它就是一个用来管理校友信息、活动安排、联系方式等的系统。比如,学校可能会有校友会,他们需要记录每个校友的基本信息,比如姓名、毕业年份、联系方式、所在公司等等。然后可能还会组织一些聚会或者活动,这时候就需要一个系统来管理这些信息,方便查询和更新。
那么,为什么选择Python呢?因为Python语法简单,容易上手,而且有很多现成的库和框架可以使用。比如,我们可以用Flask或者Django来做Web应用,用SQLite或者MySQL来做数据库。如果你只是想做一个简单的本地管理系统,那用Python本身就可以实现,不需要太多复杂的配置。
好了,现在我们就开始动手吧!首先,我们需要确定系统的功能模块。一般来说,一个校友会管理系统至少需要以下几个功能:

- 添加校友信息
- 查看所有校友信息
- 按条件搜索校友信息(比如按姓名、毕业年份等)
- 修改或删除某个校友的信息
- 保存数据到文件或数据库中
接下来,我们就先从最简单的版本开始,不涉及前端界面,只用命令行来操作。这样更容易理解,也更便于后续扩展。
第一步,我们得先设置一个数据存储的地方。这里我们可以用Python内置的字典结构来模拟数据库,或者直接写入一个JSON文件。不过为了更真实一点,我们可以用SQLite数据库,这样以后如果要扩展成Web应用也方便。
所以,第一步是安装SQLite。其实Python自带了SQLite的支持,所以不用额外安装。接下来,我们创建一个数据库,并且建立一个表来存放校友信息。
代码如下:
import sqlite3
# 连接数据库,如果不存在就新建
conn = sqlite3.connect('alumni.db')
cursor = conn.cursor()
# 创建表
cursor.execute('''
CREATE TABLE IF NOT EXISTS alumni (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
graduation_year INTEGER,
email TEXT,
company TEXT
)
''')
# 提交更改
conn.commit()
这段代码的作用是连接一个叫“alumni.db”的数据库,如果这个数据库不存在,就会自动创建。然后创建一个名为“alumni”的表,里面包含id、name、graduation_year、email、company这几个字段。其中id是主键,自增,其他字段都是可空的。
接下来,我们就要实现添加校友信息的功能了。这里我们可以写一个函数,让用户输入相关信息,然后插入到数据库中。
def add_alumni():
name = input("请输入姓名:")
graduation_year = int(input("请输入毕业年份:"))
email = input("请输入邮箱:")
company = input("请输入公司名称:")
cursor.execute('''
INSERT INTO alumni (name, graduation_year, email, company)
VALUES (?, ?, ?, ?)
''', (name, graduation_year, email, company))
conn.commit()
print("校友信息已成功添加!")
这个函数非常简单,用户输入各个字段,然后用SQL语句插入到数据库中。注意这里的参数用了问号占位符,这是防止SQL注入的一种方式。
然后,我们要实现查看所有校友信息的功能。这部分代码也很简单,只需要执行一个SELECT查询,然后遍历结果输出即可。
def view_all_alumni():
cursor.execute('SELECT * FROM alumni')
rows = cursor.fetchall()
if not rows:
print("没有找到任何校友信息。")
return
for row in rows:
print(f"ID: {row[0]}, 姓名: {row[1]}, 毕业年份: {row[2]}, 邮箱: {row[3]}, 公司: {row[4]}")
这段代码执行了一个SELECT * FROM alumni,然后遍历每一条记录,把信息打印出来。如果没有数据,就提示用户没有找到。
接下来是搜索功能。用户可能想根据姓名或者毕业年份来查找特定的校友。我们可以写一个函数,允许用户输入关键词,然后进行模糊匹配。
def search_alumni():
keyword = input("请输入要搜索的关键词(如姓名或公司):")
cursor.execute('''
SELECT * FROM alumni
WHERE name LIKE ? OR company LIKE ?
''', ('%' + keyword + '%', '%' + keyword + '%'))
rows = cursor.fetchall()
if not rows:
print("没有找到相关校友信息。")
return
for row in rows:
print(f"ID: {row[0]}, 姓名: {row[1]}, 毕业年份: {row[2]}, 邮箱: {row[3]}, 公司: {row[4]}")

这里用了LIKE关键字配合通配符%来进行模糊搜索,这样用户输入的部分内容就可以匹配到相关的记录。
然后是修改和删除功能。这两个功能稍微复杂一点,需要先让用户输入要修改或删除的校友ID,然后执行相应的操作。
def update_alumni():
alumni_id = int(input("请输入要修改的校友ID:"))
name = input("请输入新的姓名:")
graduation_year = int(input("请输入新的毕业年份:"))
email = input("请输入新的邮箱:")
company = input("请输入新的公司名称:")
cursor.execute('''
UPDATE alumni
SET name = ?, graduation_year = ?, email = ?, company = ?
WHERE id = ?
''', (name, graduation_year, email, company, alumni_id))
conn.commit()
print("校友信息已更新!")
def delete_alumni():
alumni_id = int(input("请输入要删除的校友ID:"))
cursor.execute('DELETE FROM alumni WHERE id = ?', (alumni_id,))
conn.commit()
print("校友信息已删除!")
这两个函数分别用于更新和删除记录,需要注意的是,在执行删除操作之前,最好提醒用户确认,避免误删。
最后,我们需要一个主菜单,让用户可以选择不同的操作。这可以通过一个while循环来实现。
def main_menu():
while True:
print("\n=== 校友会管理系统 ===")
print("1. 添加校友信息")
print("2. 查看所有校友信息")
print("3. 搜索校友信息")
print("4. 修改校友信息")
print("5. 删除校友信息")
print("6. 退出系统")
choice = input("请选择操作(1-6):")
if choice == '1':
add_alumni()
elif choice == '2':
view_all_alumni()
elif choice == '3':
search_alumni()
elif choice == '4':
update_alumni()
elif choice == '5':
delete_alumni()
elif choice == '6':
print("感谢使用校友会管理系统!再见!")
break
else:
print("无效选项,请重新输入。")
这个函数是一个简单的命令行菜单,用户可以根据提示选择对应的操作。
现在,把这些函数组合起来,整个程序就完成了。最后再加一个main()函数来启动程序。
def main():
main_menu()
conn.close()
if __name__ == "__main__":
main()
这样,整个系统就运行起来了。你可以试着运行一下,看看能不能正常添加、查看、搜索、修改和删除校友信息。
当然,这只是最基础的一个版本,未来还可以继续扩展,比如加入图形界面(GUI)、Web接口、数据导出等功能。如果你对Web开发感兴趣,可以用Flask或者Django来搭建一个网页版的校友会管理系统,这样用户就可以通过浏览器来操作了。
总结一下,今天我们用Python写了一个简单的校友会管理系统,主要实现了添加、查看、搜索、修改和删除校友信息的功能。虽然功能还比较简单,但已经足够作为一个入门项目的参考了。
如果你对这个项目感兴趣,可以尝试自己动手写一遍,或者进一步扩展它的功能。比如,你可以加入更多字段,比如电话号码、地址、兴趣爱好等,让系统更加完善。另外,也可以考虑将数据保存到CSV文件中,或者连接到MySQL等更强大的数据库。
写到这里,我觉得这个项目真的挺有意思的。它不仅锻炼了你的Python编程能力,还让你对数据库操作有了更深的理解。希望这篇文章对你有所帮助,也欢迎你在评论区分享你的想法或者遇到的问题!
如果你有任何疑问,或者想了解如何将这个系统升级为Web应用,欢迎随时留言,我会尽力帮助你解答。
本站知识库部分内容及素材来源于互联网,如有侵权,联系必删!

