X 
微信扫码联系客服
获取报价、解决方案


李经理
13913191678
首页 > 知识库 > 校友管理系统> 用Python打造一个简单的校友信息管理系统
校友管理系统在线试用
校友管理系统
在线试用
校友管理系统解决方案
校友管理系统
解决方案下载
校友管理系统源码
校友管理系统
源码授权
校友管理系统报价
校友管理系统
产品报价

用Python打造一个简单的校友信息管理系统

2026-01-28 17:46

大家好,今天咱们来聊聊怎么用Python写一个校友信息管理系统。这玩意儿听起来挺高大上的,其实也就那么回事。我之前在学校里也搞过类似的项目,虽然不是特别复杂,但确实能解决一些实际问题。

首先,咱们得想清楚这个系统要干啥。校友信息管理系统嘛,主要就是用来记录校友的基本信息,比如姓名、联系方式、毕业年份、所在单位等等。然后可能还要有查询功能,比如按学校、专业或者年份来查找校友信息。当然了,如果是校园里用的,可能还需要跟学生信息对接一下,这样就能自动同步数据了。

不过今天咱们先不扯太远,就做一个最基础的版本。用Python的话,我觉得用SQLite数据库是最方便的,不需要安装什么额外的东西,直接内置就行。而且代码也不复杂,适合新手上手。

第一步:创建数据库

咱们先来建个数据库。在Python里,可以用sqlite3模块来操作。那我们先写个简单的脚本,创建一个表,用来存储校友的信息。

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,

email TEXT,

phone TEXT,

graduation_year INTEGER,

company TEXT,

major TEXT

)

''')

# 提交更改

conn.commit()

# 关闭连接

conn.close()

这段代码的作用是创建一个叫alumni.db的数据库文件,里面有一个alumni表。表里面有id、name、email、phone、graduation_year、company、major这几个字段。id是主键,自增的,不用管。其他字段都是文本或者整数类型。

运行这段代码之后,你就有了一个数据库,可以开始添加数据了。

第二步:添加数据

接下来咱们要写一个函数,用来添加新的校友信息到数据库里。这里我们可以用一个函数,接受参数,然后插入到数据库中。

def add_alumni(name, email, phone, graduation_year, company, major):

conn = sqlite3.connect('alumni.db')

cursor = conn.cursor()

cursor.execute('INSERT INTO alumni (name, email, phone, graduation_year, company, major) VALUES (?, ?, ?, ?, ?, ?)',

(name, email, phone, graduation_year, company, major))

conn.commit()

conn.close()

print("数据已添加!")

这个函数的逻辑很简单,就是连接数据库,执行插入语句,然后提交更改。注意这里的?号是占位符,防止SQL注入。你调用的时候传入参数就可以了。

举个例子,你想添加一个叫张三的校友,他毕业于2015年,现在在腾讯工作,学的是计算机科学,邮箱是zhangsan@example.com,电话是13812345678。你可以这样调用:

add_alumni("张三", "zhangsan@example.com", "13812345678", 2015, "腾讯", "计算机科学")

运行之后,数据就会被存进去了。

第三步:查询数据

光有添加功能还不够,还得能查。比如你要找某个专业的校友,或者某个年份的。这时候我们就需要写一个查询函数。

def search_alumni(major=None, year=None):

conn = sqlite3.connect('alumni.db')

cursor = conn.cursor()

query = 'SELECT * FROM alumni WHERE 1=1'

if major:

query += ' AND major = ?'

if year:

query += ' AND graduation_year = ?'

cursor.execute(query, (major, year))

results = cursor.fetchall()

conn.close()

return results

这个函数支持按专业和毕业年份查询。比如你想查所有计算机专业的校友,可以这样调用:

results = search_alumni(major="计算机科学")

for row in results:

print(row)

或者查2018年的毕业生:

校友管理系统

results = search_alumni(year=2018)

for row in results:

print(row)

这样就能得到所有符合条件的数据了。

第四步:更新和删除数据

除了添加和查询,有时候还需要修改或删除数据。比如某个校友的信息错了,或者他换公司了,就需要更新。同样,如果有人不想再被联系,可能需要删除。

更新数据的函数如下:

def update_alumni(id, name=None, email=None, phone=None, graduation_year=None, company=None, major=None):

conn = sqlite3.connect('alumni.db')

cursor = conn.cursor()

fields = []

values = []

if name:

fields.append('name = ?')

values.append(name)

if email:

fields.append('email = ?')

values.append(email)

if phone:

fields.append('phone = ?')

values.append(phone)

if graduation_year:

fields.append('graduation_year = ?')

values.append(graduation_year)

if company:

fields.append('company = ?')

values.append(company)

if major:

fields.append('major = ?')

values.append(major)

if not fields:

print("没有需要更新的字段")

conn.close()

return

query = f'UPDATE alumni SET {", ".join(fields)} WHERE id = ?'

values.append(id)

cursor.execute(query, values)

conn.commit()

conn.close()

print("数据已更新!")

这个函数比较灵活,可以只更新部分字段。比如你想把张三的电话改成13987654321,可以这样调用:

update_alumni(1, phone="13987654321")

注意这里的id是1,代表数据库中的第一条记录。

删除数据的函数也类似:

def delete_alumni(id):

conn = sqlite3.connect('alumni.db')

cursor = conn.cursor()

cursor.execute('DELETE FROM alumni WHERE id = ?', (id,))

conn.commit()

conn.close()

print("数据已删除!")

调用方式也很简单:

delete_alumni(1)

第五步:封装成一个完整的程序

现在我们已经完成了基本的功能,接下来可以把这些函数组合起来,做成一个简单的命令行程序,让用户通过输入指令来操作。

import sqlite3

def create_table():

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,

email TEXT,

phone TEXT,

graduation_year INTEGER,

company TEXT,

major TEXT

)

''')

conn.commit()

conn.close()

def add_alumni(name, email, phone, graduation_year, company, major):

conn = sqlite3.connect('alumni.db')

cursor = conn.cursor()

cursor.execute('INSERT INTO alumni (name, email, phone, graduation_year, company, major) VALUES (?, ?, ?, ?, ?, ?)',

(name, email, phone, graduation_year, company, major))

conn.commit()

conn.close()

print("数据已添加!")

def search_alumni(major=None, year=None):

conn = sqlite3.connect('alumni.db')

cursor = conn.cursor()

query = 'SELECT * FROM alumni WHERE 1=1'

if major:

query += ' AND major = ?'

if year:

query += ' AND graduation_year = ?'

cursor.execute(query, (major, year))

results = cursor.fetchall()

conn.close()

return results

def update_alumni(id, name=None, email=None, phone=None, graduation_year=None, company=None, major=None):

conn = sqlite3.connect('alumni.db')

cursor = conn.cursor()

fields = []

values = []

if name:

fields.append('name = ?')

values.append(name)

if email:

fields.append('email = ?')

values.append(email)

if phone:

fields.append('phone = ?')

values.append(phone)

if graduation_year:

fields.append('graduation_year = ?')

values.append(graduation_year)

if company:

fields.append('company = ?')

values.append(company)

if major:

fields.append('major = ?')

values.append(major)

if not fields:

print("没有需要更新的字段")

conn.close()

return

query = f'UPDATE alumni SET {", ".join(fields)} WHERE id = ?'

values.append(id)

cursor.execute(query, values)

conn.commit()

conn.close()

print("数据已更新!")

def delete_alumni(id):

conn = sqlite3.connect('alumni.db')

cursor = conn.cursor()

cursor.execute('DELETE FROM alumni WHERE id = ?', (id,))

conn.commit()

conn.close()

print("数据已删除!")

def main():

create_table()

while True:

print("\n请选择操作:")

print("1. 添加校友")

print("2. 查询校友")

校友系统

print("3. 更新校友")

print("4. 删除校友")

print("5. 退出")

choice = input("请输入选项:")

if choice == '1':

name = input("请输入姓名:")

email = input("请输入邮箱:")

phone = input("请输入电话:")

graduation_year = int(input("请输入毕业年份:"))

company = input("请输入公司:")

major = input("请输入专业:")

add_alumni(name, email, phone, graduation_year, company, major)

elif choice == '2':

major = input("请输入专业(留空表示不限):")

year = input("请输入毕业年份(留空表示不限):")

if year:

year = int(year)

results = search_alumni(major=major or None, year=year or None)

for row in results:

print(row)

elif choice == '3':

id = int(input("请输入要更新的校友ID:"))

name = input("请输入新姓名(留空表示不修改):")

email = input("请输入新邮箱(留空表示不修改):")

phone = input("请输入新电话(留空表示不修改):")

graduation_year = input("请输入新毕业年份(留空表示不修改):")

company = input("请输入新公司(留空表示不修改):")

major = input("请输入新专业(留空表示不修改):")

if graduation_year:

graduation_year = int(graduation_year)

update_alumni(id, name=name or None, email=email or None, phone=phone or None,

graduation_year=graduation_year or None, company=company or None, major=major or None)

elif choice == '4':

id = int(input("请输入要删除的校友ID:"))

delete_alumni(id)

elif choice == '5':

print("程序已退出。")

break

else:

print("无效选项,请重新输入。")

if __name__ == "__main__":

main()

这个程序是一个简单的命令行工具,用户可以通过输入数字选择不同的操作。比如添加、查询、更新、删除等。非常适合校园里的小规模使用。

总结

今天咱们用Python写了一个简单的校友信息管理系统,用到了SQLite数据库和一些基本的SQL操作。虽然功能不算很强大,但已经能满足基本需求了。

如果你是在校园里做这个项目,还可以考虑和学校的教务系统对接,或者开发一个网页版的界面,这样使用起来更方便。不过对于入门来说,这样的命令行程序已经是个不错的起点了。

总之,不管你是学生还是刚入行的程序员,都可以从这种小项目入手,锻炼自己的编程能力和数据库操作能力。希望这篇文章对你有帮助,也欢迎你动手试试看!

本站知识库部分内容及素材来源于互联网,如有侵权,联系必删!

标签: