当前位置: 首页 > wzjs >正文

怎么自己做网站空间网站运营seo实训总结

怎么自己做网站空间,网站运营seo实训总结,最新的新闻内容,如何加强英文网站建设用Python构建学生成绩管理系统的基本方案 A Basic Solution to Build A Student Score Management System with Python By JacksonML 如果有想法,要构建一个基于Python的学生成绩管理系统,那么,首先要规划出该项目的方案,或者框…

用Python构建学生成绩管理系统的基本方案

A Basic Solution to Build A Student Score Management System with Python

By Jackson@ML

如果有想法,要构建一个基于Python的学生成绩管理系统,那么,首先要规划出该项目的方案,或者框架。

可以逐步把结构清晰的方案勾勒出来,然后,使用代码逐步实现,完成这项任务。本文以macOS系统为例,对简易方案进行规划,希望对读者有所帮助。

1. 搭建环境

1) 安装Python最新版

基于Python的应用程序,离不开Python软件包;其标准库可以支持多数代码开发,扩展功能可安装第三方库支持。

安装使用过程可参照:2025最新版Python 3.13.3安装使用指南
本文不再赘述安装过程。

2) 安装Visual Studio Code最新版

如要安装VS Code最新版,请参照文章:2024最新版Visual Studio Code安装使用指南, 本文不再赘述。

3) 搭建虚拟环境

在VS Code终端执行命令,搭建符合项目要求的虚拟环境,例如,项目虚拟环境名为:project-env.

$ python -m venv project-env
4) 激活虚拟环境

创建虚拟环境后,执行命令以激活该虚拟环境。

$ source /project-env/bin/activate
4) 安装第三方库

为了连接MySQL数据库,需要安装第三方库pymysql。于是,在虚拟环境中执行以下安装命令:

(project-env) $ pip install pymysql

2. 数据库设计

由于是学生成绩管理系统,因此,假设要规划学生表students,和成绩表scores。大致架构如下:

1) 学生表 students
  • student_id 学号(主键)
  • name 姓名
  • gender 性别
  • age 年龄
  • class 班级
2) 成绩表 scores
  • score_id 成绩ID(主键)
  • student_id 学号(外键)
  • subject 科目
  • score 分数
  • exam_date 考试日期

在这里插入图片描述

3. 数据库连接

如需连接数据库,则需编写代码。首先,需要导入pymysql库,以及pymysql.cursors中的DictCursor模块,命令如下:

import pymysql
from pymysql.cursors import DictCursor

接下来,要编写学生成绩管理的类,可命名为:StudentManager;

该类中包含初始化函数,以及创建表的函数(用来以SQL语句CREATE TABLE创建表),代码如下:

class StudentManager:def __init__(self):"""初始化数据库连接"""self.connection = pymysql.connect(host='localhost',user='your_username',password='your_password',database='student_db',charset='utf8mb4',cursorclass=DictCursor)self.create_tables()def create_tables(self):"""创建数据表"""with self.connection.cursor() as cursor:# 创建学生表cursor.execute("""CREATE TABLE IF NOT EXISTS students (student_id VARCHAR(20) PRIMARY KEY,name VARCHAR(50) NOT NULL,gender ENUM('男', '女') NOT NULL,age TINYINT UNSIGNED,class VARCHAR(20)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4""")# 创建成绩表cursor.execute("""CREATE TABLE IF NOT EXISTS scores (score_id INT AUTO_INCREMENT PRIMARY KEY,student_id VARCHAR(20) NOT NULL,subject VARCHAR(50) NOT NULL,score DECIMAL(5,2),exam_date DATE,FOREIGN KEY (student_id) REFERENCES students(student_id)ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4""")self.connection.commit()

4. 主要功能实现

1) 模块一:学生管理

实现该模块,需要创建添加学生函数add_student(),查询学生信息函数get_student(),以及更新学生信息函数update_student()。

以下是示例代码:

def add_student(self, student_id, name, gender, age=None, class_=None):"""添加学生记录"""try:with self.connection.cursor() as cursor:sql = """INSERT INTO students (student_id, name, gender, age, class)VALUES (%s, %s, %s, %s, %s)"""cursor.execute(sql, (student_id, name, gender, age, class_))self.connection.commit()print("学生添加成功")except pymysql.IntegrityError:print("错误:学号已存在")def get_student(self, student_id):"""查询学生信息"""with self.connection.cursor() as cursor:sql = "SELECT * FROM students WHERE student_id = %s"cursor.execute(sql, (student_id,))return cursor.fetchone()def update_student(self, student_id, **kwargs):"""更新学生信息"""valid_fields = ['name', 'gender', 'age', 'class']updates = []params = []for field, value in kwargs.items():if field in valid_fields:updates.append(f"{field} = %s")params.append(value)if updates:sql = f"UPDATE students SET {', '.join(updates)} WHERE student_id = %s"params.append(student_id)with self.connection.cursor() as cursor:cursor.execute(sql, params)self.connection.commit()print(f"成功更新{cursor.rowcount}条记录")
2) 模块二:成绩管理

成绩管理模块代码包含添加分数函数add_score(),以及查询成绩函数get_scores(),代码如下:

def add_score(self, student_id, subject, score, exam_date):"""添加成绩记录"""try:with self.connection.cursor() as cursor:sql = """INSERT INTO scores (student_id, subject, score, exam_date)VALUES (%s, %s, %s, %s)"""cursor.execute(sql, (student_id, subject, score, exam_date))self.connection.commit()print("成绩添加成功")except pymysql.IntegrityError:print("错误:学生不存在")def get_scores(self, student_id):"""查询学生所有成绩"""with self.connection.cursor() as cursor:sql = """SELECT s.name, sc.subject, sc.score, sc.exam_date FROM scores scJOIN students s ON sc.student_id = s.student_idWHERE sc.student_id = %s"""cursor.execute(sql, (student_id,))return cursor.fetchall()

3) 模块三:统计查询

统计查询模块,包含班级成绩汇总函数get_class_summary(),返回值为游标cursor的fetchall()方法。代码如下:

def get_class_summary(self, class_name):"""班级成绩汇总"""with self.connection.cursor() as cursor:sql = """SELECT s.class, sc.subject, AVG(sc.score) as avg_score,MAX(sc.score) as max_score,MIN(sc.score) as min_scoreFROM scores scJOIN students s ON sc.student_id = s.student_idWHERE s.class = %sGROUP BY sc.subject"""cursor.execute(sql, (class_name,))return cursor.fetchall()
4) 执行查询和统计结果

完成了上述模块规划,将逐步把方法联系到一起,在if条件句执行后,运行该应用程序。代码如下:

if __name__ == "__main__":manager = StudentManager()# 添加测试数据manager.add_student('2023001', '张三', '男', 18, '高三(1)班')manager.add_score('2023001', '数学', 95.5, '2023-06-15')# 查询学生信息student = manager.get_student('2023001')print("学生信息:", student)# 查询成绩scores = manager.get_scores('2023001')print("考试成绩:", scores)# 班级统计summary = manager.get_class_summary('高三(1)班')print("班级汇总:", summary)# 关闭连接manager.connection.close()

5. 注意事项:

1) 数据完整性

为确保数据完整使用外键约束确保成绩必须对应有效学生;严格校验字段类型。确保MySQL服务已启动且用户有权限。

2) 安全措施

生产环境需要添加异常处理机制;上下文管理自动管理游标;用参数化查询防止SQL注入;提交事务确保数据一致性。

3) 扩展性

DictCursor返回字典格式结果;具备动态字段更新机制;具有灵活的统计查询接口。

本方案包含了环境搭建、数据库设计、核心功能实现及较完整的代码示例。

采用面向对象程序设计,具有良好的扩展性,以及可维护性。实现复杂项目方案时,可以参考本方案,并根据具体需求适当扩展和优化。


关于Python项目案例,还有很多很多。
技术好文陆续推出,敬请关注、收藏和点赞👍。

您的认可,我的动力! 😃

相关阅读:

  1. 2025最新版Python 3.13.3安装使用指南
  2. 【AWS入门】Amazon Bedrock简介
  3. 【AWS入门】Amazon SageMaker简介
  4. 【AWS入门】AWS身份验证和访问管理(IAM)
  5. 一分钟了解机器学习
  6. 一分钟了解深度学习
  7. 一分钟了解大语言模型(LLMs)
http://www.dtcms.com/wzjs/345847.html

相关文章:

  • 网站开发 模版绑定顶级域名属于网络营销的特点是
  • 网站制作及实现点金推广优化公司
  • 网站产品链接怎么做的seo网站关键词优化方法
  • 公众号做微网站吗舆情报告范文
  • 全网通官方网站口碑营销的形式
  • wordpress 瀑布流布局海口seo计费
  • 金山石化网站建设手机优化专家下载
  • 网站建设公司一月赚多少电工培训技术学校
  • 品牌网站建设报价企业文化标语
  • 电影网站做淘宝联盟问卷调查网站
  • 广东响应式网站建设平台网页制作学习
  • 科技网站设计公司排行榜推广发帖网站
  • 个人微信公共号可以做微网站么品牌推广计划书怎么写
  • 手机网站后台管理系统企点下载
  • 网站建设公司是什么意思互联网搜索引擎
  • WordPress客户端百度推广优化工具
  • 做网站怎么找图百度网盘网页版
  • wordpress大学最新模板下载seo标题优化
  • 建设银行信用卡网站是哪个灰色行业推广平台网站
  • 网站现在如何做推广网站制作公司排行榜
  • 宿州网站建设搜索软件使用排名
  • 诸城网站建设0536s全渠道营销管理平台
  • 怎样找回网站域名密码谷歌seo引擎优化
  • 山东青岛网站设计可以入侵的网站
  • 腾飞网站建设互联网营销师培训内容
  • 网站设计师主要做什么的中山360推广
  • 怎么往网站换图片百度客服在线咨询
  • 用内网穿透做网站可以被收录吗一站式媒体发布平台
  • 昆明网站建设锐网大连网站seo
  • wordpress 使用ip访问南京seo全网营销