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


李经理
13913191678
首页 > 知识库 > 校友管理系统> 校友管理系统与Python的结合实践
校友管理系统在线试用
校友管理系统
在线试用
校友管理系统解决方案
校友管理系统
解决方案下载
校友管理系统源码
校友管理系统
源码授权
校友管理系统报价
校友管理系统
产品报价

校友管理系统与Python的结合实践

2026-06-03 03:41

小明:最近我在学习Python,听说可以用来做系统开发,比如校友管理系统

小李:对啊,Python确实很适合做这种项目。尤其是像校友管理系统这种需要数据存储和展示的系统。

小明:那具体怎么开始呢?我有点懵。

小李:我们可以一步步来。首先,你需要明确系统的功能需求。比如,校友信息的添加、查询、修改和删除,还有可能需要登录功能。

小明:听起来不错。那数据库方面怎么处理?是不是要用到SQL?

小李:是的,你可以用SQLite或者MySQL这样的数据库。Python中有个库叫sqlite3,可以直接操作SQLite数据库。

小明:那我可以先创建一个数据库表,用来保存校友的信息吗?比如姓名、性别、毕业年份、联系方式这些字段。

小李:没错,这一步是关键。我们可以用SQL语句来创建表。例如:

CREATE TABLE alumni (

id INTEGER PRIMARY KEY AUTOINCREMENT,

name TEXT NOT NULL,

gender TEXT,

graduation_year INTEGER,

contact_info TEXT

);

小明:这个SQL语句看起来挺简单的。那在Python中怎么执行呢?

小李:可以用sqlite3模块来连接数据库,并执行SQL语句。下面是一个简单的例子:

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,

gender TEXT,

graduation_year INTEGER,

contact_info TEXT

)

''')

conn.commit()

conn.close()

小明:哦,明白了。那接下来是不是要写一些函数,比如添加校友信息?

小李:对,你可以定义一个函数来插入数据。比如:

def add_alumni(name, gender, graduation_year, contact_info):

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

cursor = conn.cursor()

cursor.execute('INSERT INTO alumni (name, gender, graduation_year, contact_info) VALUES (?, ?, ?, ?)',

(name, gender, graduation_year, contact_info))

conn.commit()

conn.close()

小明:这样就可以把数据存进去了。那查询的话,应该怎么写?

小李:查询也很简单。比如你想查所有校友信息,可以写:

def get_all_alumni():

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

cursor = conn.cursor()

cursor.execute('SELECT * FROM alumni')

results = cursor.fetchall()

conn.close()

return results

小明:那如果我要根据姓名来查找呢?

小李:可以写一个带参数的查询函数。比如:

def search_alumni_by_name(name):

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

cursor = conn.cursor()

cursor.execute('SELECT * FROM alumni WHERE name LIKE ?', ('%' + name + '%',))

results = cursor.fetchall()

conn.close()

return results

小明:这个LIKE语句能支持模糊查询,挺方便的。

小李:没错。那接下来我们考虑做一个简单的Web界面,让用户可以通过网页来操作这个系统。

小明:怎么做呢?Python有没有现成的Web框架?

小李:当然有,比如Flask或者Django。对于简单的系统来说,Flask更轻量级,适合入门。

小明:那我们就用Flask吧。那我应该怎么搭建环境?

小李:首先,安装Flask:

pip install flask

然后创建一个简单的Flask应用。比如:

from flask import Flask, render_template, request, redirect, url_for

import sqlite3

app = Flask(__name__)

def get_db_connection():

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

conn.row_factory = sqlite3.Row

return conn

@app.route('/')

def index():

conn = get_db_connection()

alumni = conn.execute('SELECT * FROM alumni').fetchall()

conn.close()

return render_template('index.html', alumni=alumni)

@app.route('/add', methods=['POST'])

def add():

name = request.form['name']

gender = request.form['gender']

graduation_year = request.form['graduation_year']

contact_info = request.form['contact_info']

conn = get_db_connection()

conn.execute('INSERT INTO alumni (name, gender, graduation_year, contact_info) VALUES (?, ?, ?, ?)',

(name, gender, graduation_year, contact_info))

conn.commit()

conn.close()

return redirect(url_for('index'))

if __name__ == '__main__':

app.run(debug=True)

小明:这段代码看起来不错。那模板文件该怎么写?

小李:你可以在templates目录下创建一个index.html文件,内容如下:

<!DOCTYPE html>

<html>

<head>

<title>校友管理系统</title>

</head>

<body>

<h1>校友列表</h1>

<table border="1">

<tr>

<th>姓名</th>

<th>性别</th>

<th>毕业年份</th>

<th>联系方式</th>

</tr>

{% for alumni in alumni %}

<tr>

<td>{{ alumni.name }}</td>

<td>{{ alumni.gender }}</td>

<td>{{ alumni.graduation_year }}</td>

<td>{{ alumni.contact_info }}</td>

</tr>

{% endfor %}

</table>

<h2>添加校友</h2>

<form method="post">

姓名:<input type="text" name="name"><br>

性别:<input type="text" name="gender"><br>

毕业年份:<input type="number" name="graduation_year"><br>

联系方式:<input type="text" name="contact_info"><br>

<input type="submit" value="提交">

</form>

</body>

</html>

小明:这样就完成了基本的页面显示和表单提交功能。

小李:是的。不过现在还缺少搜索功能,我们可以再加一个搜索接口。

小明:那怎么实现呢?

小李:可以在路由中添加一个搜索路径,比如:

@app.route('/search', methods=['GET'])

def search():

name = request.args.get('name')

conn = get_db_connection()

if name:

alumni = conn.execute('SELECT * FROM alumni WHERE name LIKE ?', ('%' + name + '%',)).fetchall()

else:

alumni = conn.execute('SELECT * FROM alumni').fetchall()

conn.close()

return render_template('index.html', alumni=alumni)

小明:这样用户就可以通过URL传入名字进行搜索了。

小李:没错。另外,还可以考虑增加编辑和删除功能,提升系统的实用性。

小明:那编辑功能应该怎么实现呢?

小李:可以添加一个编辑页面,通过ID来获取数据并更新。比如:

@app.route('/edit/', methods=['GET', 'POST'])

def edit(id):

conn = get_db_connection()

if request.method == 'POST':

name = request.form['name']

gender = request.form['gender']

graduation_year = request.form['graduation_year']

校友管理

contact_info = request.form['contact_info']

conn.execute('UPDATE alumni SET name=?, gender=?, graduation_year=?, contact_info=? WHERE id=?',

(name, gender, graduation_year, contact_info, id))

conn.commit()

conn.close()

return redirect(url_for('index'))

else:

alumni = conn.execute('SELECT * FROM alumni WHERE id=?', (id,)).fetchone()

conn.close()

return render_template('edit.html', alumni=alumni)

小明:那对应的模板文件该怎么写?

小李:创建一个edit.html文件,内容如下:

<!DOCTYPE html>

<html>

<head>

<title>编辑校友信息</title>

</head>

<body>

<h1>编辑校友信息</h1>

<form method="post">

姓名:<input type="text" name="name" value="{{ alumni.name }}"><br>

性别:<input type="text" name="gender" value="{{ alumni.gender }}"><br>

毕业年份:<input type="number" name="graduation_year" value="{{ alumni.graduation_year }}"><br>

联系方式:<input type="text" name="contact_info" value="{{ alumni.contact_info }}"><br>

<input type="submit" value="提交">

</form>

</body>

</html>

小明:这样就完成了编辑功能。

小李:是的。最后,我们还可以添加删除功能,比如:

@app.route('/delete/')

def delete(id):

conn = get_db_connection()

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

conn.commit()

conn.close()

return redirect(url_for('index'))

小明:这样整个系统的基本功能就都实现了。

小李:没错。虽然这只是个简单的版本,但已经具备了校友管理的核心功能。如果你有兴趣,还可以进一步扩展,比如加入用户登录、权限管理、导出数据等功能。

小明:看来Python真的很强大,能够快速开发出一个实用的系统。

小李:是的,Python的简洁性和丰富的库支持让它成为开发中小型系统的首选语言。

小明:谢谢你,今天学到了很多东西。

小李:不客气,以后有问题随时问我。

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

标签: