用Python搭建一个简单的大学招生管理系统
哎,今天咱们来聊一聊怎么用Python写个招生管理系统。你可能会问,这跟大学有什么关系?其实啊,很多大学都用这样的系统来管理学生的报名信息、成绩、录取情况等等。那咱们就从最基础的开始,一步步来。
首先,我得说一下,这个系统不是特别复杂,但如果你是刚入门编程的小伙伴,跟着做一遍,肯定能学到不少东西。而且,它还能帮助你理解一些基本的Web开发和数据库操作的知识。
先说说我们用什么工具吧。Python是一个很强大的语言,尤其在Web开发方面,有好多好用的框架,比如Django、Flask之类的。今天我们就用Flask,因为它简单,适合新手上手。然后,数据库的话,我们可以用SQLite,因为它是轻量级的,不需要安装额外的服务,直接就能用。
那我们先来装一下环境。如果你还没装Python,建议去官网下载最新版本。然后,你可以用pip来安装Flask和sqlite3。不过别担心,sqlite3是Python自带的,不用额外安装。
现在,我们先创建一个项目文件夹,比如叫“university_admission”。然后在这个文件夹里新建一个Python文件,比如叫“app.py”。接下来,我们就要开始写代码了。

首先,导入Flask和sqlite3。然后,初始化一个Flask应用。接着,设置一个数据库连接。这里有个小技巧,就是用SQLite的内存数据库来做测试,这样不会影响到真实的数据。
然后,我们要创建一个学生表,用来存储学生的个人信息。比如姓名、性别、年龄、电话、邮箱、专业等字段。这部分的SQL语句应该不难,就是CREATE TABLE语句。
接下来,我们需要做一个简单的网页,让用户可以输入这些信息。这时候,Flask的render_template函数就派上用场了。我们可以用HTML模板来展示表单,让用户填写数据。
然后,当用户提交表单后,我们要把数据插入到数据库中。这部分需要处理POST请求,获取用户输入的数据,然后执行INSERT语句。
之后,我们还需要一个页面来显示所有已录入的学生信息。这时候,我们可以用SELECT语句查询数据库,然后把结果渲染成HTML表格。
说到这里,可能有人会问,那怎么让这个系统更实用一点呢?比如,添加一些功能,比如按专业筛选、按成绩排序,或者允许修改和删除记录?
这些功能其实也不难,只要对数据库操作和前端页面做一些调整就行。比如,增加一个编辑页面,让用户可以修改信息;再加一个删除按钮,点击后可以删除某条记录。
不过,为了保持文章的简洁性,我们暂时只实现基本的功能。等你掌握了基础之后,再慢慢扩展。
现在,我们来看看具体的代码部分。首先,这是我们的“app.py”文件:
from flask import Flask, render_template, request, redirect, url_for
import sqlite3
app = Flask(__name__)
# 初始化数据库
def init_db():
conn = sqlite3.connect('admissions.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS students
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
gender TEXT,
age INTEGER,
phone TEXT,
email TEXT,
major TEXT)''')
conn.commit()
conn.close()
# 添加学生信息
def add_student(name, gender, age, phone, email, major):
conn = sqlite3.connect('admissions.db')
c = conn.cursor()
c.execute("INSERT INTO students (name, gender, age, phone, email, major) VALUES (?, ?, ?, ?, ?, ?)",
(name, gender, age, phone, email, major))
conn.commit()
conn.close()
# 查询所有学生
def get_students():
conn = sqlite3.connect('admissions.db')
c = conn.cursor()
c.execute("SELECT * FROM students")
students = c.fetchall()
conn.close()
return students
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
name = request.form['name']
gender = request.form['gender']
age = request.form['age']
phone = request.form['phone']
email = request.form['email']
major = request.form['major']
add_student(name, gender, age, phone, email, major)
return redirect(url_for('students'))
return render_template('index.html')
@app.route('/students')
def students():
students = get_students()
return render_template('students.html', students=students)
if __name__ == '__main__':
init_db()
app.run(debug=True)
这段代码做了什么呢?首先,定义了一个Flask应用,然后创建了一个数据库,如果不存在的话,就会自动创建一个叫做“admissions.db”的SQLite数据库。
接着,我们定义了三个函数:`init_db()`用于初始化数据库,`add_student()`用于插入学生信息,`get_students()`用于查询所有学生。
在路由部分,`/`路径处理GET和POST请求。如果是POST请求,就从表单中获取数据,调用`add_student()`插入到数据库中,然后跳转到`/students`页面。
`/students`路径则会调用`get_students()`获取所有学生信息,并渲染到`students.html`页面上。

现在,我们需要创建两个HTML模板文件,分别放在一个叫“templates”的文件夹里。第一个是`index.html`,内容如下:
大学招生管理系统 欢迎使用招生管理系统
这个页面就是一个简单的表单,用户可以在这里输入自己的信息。注意,每个字段都有required属性,确保用户必须填写才能提交。
然后是`students.html`,内容如下:
学生列表 学生列表
| ID | 姓名 | 性别 | 年龄 | 电话 | 邮箱 | 专业 |
|---|---|---|---|---|---|---|
| {{ student[0] }} | {{ student[1] }} | {{ student[2] }} | {{ student[3] }} | {{ student[4] }} | {{ student[5] }} | {{ student[6] }} |
返回首页
这个页面会显示所有已经录入的学生信息,用一个表格展示出来。同时还有一个链接可以回到首页。
说到这里,我觉得你应该已经大概了解了整个系统的运作方式。不过,可能还有几个问题需要解释一下。
比如,为什么用Flask而不是其他框架?因为Flask非常轻量,适合快速开发小型项目。而且它的文档也很详细,对于新手来说,上手比较容易。
又比如,为什么用SQLite?因为它不需要复杂的配置,而且非常适合本地开发和测试。当然,如果以后要部署到生产环境,可能需要换成MySQL或者PostgreSQL之类的数据库。
再比如说,这个系统目前只能进行增删查,没有更新功能。如果你想让它更强大,可以考虑添加一个编辑页面,让用户可以修改信息。这部分其实也不难,只需要再写一个路由,处理PUT请求,然后更新对应的记录即可。
总体来说,这个系统虽然简单,但已经涵盖了Web开发中的基本概念,比如路由、表单处理、数据库操作、模板渲染等。如果你能跟着做一遍,相信你会对Web开发有一个初步的认识。
当然,这只是个起点。如果你想把它变得更完善,可以加入更多功能,比如用户登录、权限管理、数据导出、报表生成等等。这些都是进阶的内容,但只要你愿意学,总有一天你能做到。
最后,我想说,技术就是这样,一点点积累起来的。不要觉得一开始太难,也不要怕犯错。多动手,多尝试,你一定会越来越熟练。
所以,如果你对这个系统感兴趣,不妨自己动手试试看。说不定哪天,你就成了一个真正的开发者!
本站知识库部分内容及素材来源于互联网,如有侵权,联系必删!

