【python基于mysql数据库实现无页面学生信息管理系统】

news2024/12/27 11:37:37

python基于mysql数据库实现无页面学生信息管理系统以及简单操作mysql

  • 前言
  • 一、分步讲解
    • 0.创建两张数据表
    • 1.大概思路
    • 2.首先连接数据库
    • 3.查看所有学生成绩信息
    • 4.查看所有学生个人信息
    • 5.查看指定学生成绩信息
    • 6.添加学生个人信息
    • 7.添加学生成绩信息
    • 8.修改学生个人信息
    • 9.修改学生成绩信息
    • 10.删除学生成绩信息
    • 11.删除学生个人信息
  • 二.完整系统代码
  • 总结


前言

本篇文章能让你快速掌握利用python对数据库的增删改查。以及一个简单的案例。本节案例共有两个sql数据表,一个是学生个人信息的存储表,一个是学生成绩的存储表。


一、分步讲解

0.创建两张数据表

在这里插入图片描述
在这里插入图片描述

1.大概思路

在这里插入图片描述
我们会基于这些功能,一步一步进行功能的实现。

2.首先连接数据库

import pymysql # python对mysql进行操作的库
# 
connection = pymysql.connect(host='127.0.0.1',
							 port=3306, 
							 user='root', # 填写你真实的
							 password='', # 填写你的密码
							 db='students',     # 填写你的
                             charset='utf8')
print("连接成功")

3.查看所有学生成绩信息

import pymysql

connection = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='', db='students',
                             charset='utf8')
c1 = connection.cursor()
count = c1.execute('select id,st_uid,name,chinese,math,english,total from students.student_all where id>=1')
for _ in range(1):
    result = c1.fetchall()
    print(result)   # 元组对象

4.查看所有学生个人信息

import pymysql

connection = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='', db='students',
                             charset='utf8')
c1 = connection.cursor()
count = c1.execute('select id,st_uid,name,sex,birthday,tel,path,remark from students.student_data where id>=1')
print(count)
for _ in range(1):
    result = c1.fetchall()
    print(result)   

5.查看指定学生成绩信息

根据输入的姓名,进行查找

import pymysql


conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='', db='students',charset='utf8')
print("连接成功。")
name = input("请输入学生姓名:")
cursor = conn.cursor()
sql = cursor.execute(f'select id,st_uid,name,sex,date_format(birthday,"%Y-%m-%d"),tel,path,remark from students.student_data where name like "%'+name+'%";')


print(cursor.fetchone( ))

6.添加学生个人信息

import pymysql


connection = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='', db='students',
                             charset='utf8')
print("连接成功。")
id= int(input("请输入id:"))
st_uid= int(input("请输入uid:"))
name= input("请输入名字:")
sex = input("请输入性别:")
birthday = input("请输入生日:")
tel = input("请输入电话(11位):")
path = input("请输入地址:")
remark = input("请输入简介:")
cursor = connection.cursor()
one_data = f"insert into students.student_data values (%s,%s,%s,%s,%s,%s,%s,%s); "

cursor.execute(one_data,(id,st_uid,name,sex,birthday,tel,path,remark))
print("写入成功")

7.添加学生成绩信息

import pymysql


connection = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='', db='students',
                             charset='utf8')
print("连接成功。")
id= int(input("请输入id:"))
st_uid= int(input("请输入uid:"))
name= input("请输入名字:")
chinese = int(input("请输入语文成绩"))
math = int(input("请输入数学成绩"))
english = int(input("请输入英语成绩"))
total = chinese + math + english
cursor = connection.cursor()
one_data = f"insert into students.student_all values (%s,%s,%s,%s,%s,%s,%s); "

cursor.execute(one_data,(id,st_uid,name,chinese,math,english,total))
print("写入成绩成功")

8.修改学生个人信息

import pymysql

connection = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='', db='students',
                             charset='utf8')
print("连接成功。")
cursor = connection.cursor()
st_uid = input("请输入要修改的学号:")
sql0 = cursor.execute(f'select id,st_uid,name,sex,date_format(birthday,"%Y-%m-%d"),tel,path,remark from students.student_data where st_uid like "%'+st_uid+'%";')
print(cursor.fetchone())
name= input("请输入名字:")
sex = input("请输入性别:")
birthday = input("请输入生日:")
tel = input("请输入电话(11位):")
path = input("请输入地址:")
remark = input("请输入简介:")
sql = 'UPDATE students.student_data SET name="%s", sex="%s", birthday="%s" , tel="%s" , path="%s", remark="%s" WHERE st_uid="%s"' % (name,sex,birthday,tel,path,remark,st_uid)
rows = cursor.execute(sql)
print("修改完成")

9.修改学生成绩信息

import pymysql


connection = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='', db='students',
                             charset='utf8')
print("连接成功。")
cursor = connection.cursor()
st_uid = input("请输入要修改的学号:")
sql0 = cursor.execute(f'select * from students.student_all where st_uid like "%'+st_uid+'%";')
print(cursor.fetchone())
name= input("请输入名字:")
chinese = int(input("请输入语文成绩:"))
math = int(input("请输入数学成绩:"))
english = int(input("请输入英语成绩:"))
total = chinese + math + english
print()
sql = 'UPDATE students.student_all SET name="%s",chinese="%s",math="%s",english="%s",total="%s"  WHERE st_uid="%s"' % (name,chinese,math,english,total,st_uid)
rows = cursor.execute(sql)
print("修改完成")

10.删除学生成绩信息

import pymysql

conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='', db='students',charset='utf8')
print("连接成功。")
st_uid = int(input("请输入要删除的学号:"))
cursor = conn.cursor()
sql = 'delete from students.student_all where st_uid="%d"'% st_uid
cursor.execute(sql)
conn.commit()
print("删除成功")
cursor.close()
conn.close()

11.删除学生个人信息

import pymysql


conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='', db='students',charset='utf8')
print("连接成功。")
st_uid = int(input("请输入要删除的学号:"))
cursor = conn.cursor()
sql = 'delete from students.student_data where st_uid="%d"'% st_uid
cursor.execute(sql)
conn.commit()
print("删除成功")
cursor.close()
conn.close()

二.完整系统代码

import time
import pymysql


# 1. 连接数据库
def connect():
    try:
        connection = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='', db='students',
                                     charset='utf8')

        return connection
    except Exception:
        print("连接数据库有问题,请检查配置文件。")

def cursor():
    print("连接成功。")
    c1 = connect( ).cursor( )
    return c1

def m_close():
    cursor().close( )
    connect().close( )
    print("已退出")


# 00_1查看所有学生成绩信息
def view_all():
    c1 = cursor()
    try:
        count = c1.execute('select id,st_uid,name,chinese,math,english,total from students.student_all where id>=1')
        for _ in range(1):
            result = c1.fetchall( )
            print(result)  # 元组对象
    except Exception:
        print("出问题了,请检查")


#01_2查看所有学生个人信息
def data_all():
    c1 = cursor()
    try:
        count = c1.execute('select id,st_uid,name,sex,date_format(birthday,"%Y-%m-%d"),tel,path,remark from students.student_data where id>=1')
        for _ in range(1):
            result = c1.fetchall( )
            print(result)
    except Exception:
        print("出问题了,请检查")
#03_3 查看指定学生成绩信息
def one_achievement():
    name = input("请输入学生姓名:")
    c1 = cursor()
    try:
        sql = c1.execute(
            f'select id,st_uid,name,sex,date_format(birthday,"%Y-%m-%d"),tel,path,remark from students.student_data where name like "%' + name + '%";')
        print(c1.fetchone( ))

    except Exception:
        print("出问题了,请检查")
#04添加学生个人信息
def add_st_data():
    id = int(input("请输入id:"))
    st_uid = int(input("请输入uid:"))
    name = input("请输入名字:")
    sex = input("请输入性别:")
    birthday = input("请输入生日:")
    tel = input("请输入电话(11位):")
    path = input("请输入地址:")
    remark = input("请输入简介:")
    c1 = cursor()
    try:
        one_data = f"insert into students.student_data values (%s,%s,%s,%s,%s,%s,%s,%s); "

        c1.execute(one_data, (id, st_uid, name, sex, birthday, tel, path, remark))
        print("写入成功")
    except Exception:
        print("出问题了,请检查")

# 05添加学生成绩信息
def add_achievement():
    id = int(input("请输入id:"))
    st_uid = int(input("请输入uid:"))
    name = input("请输入名字:")
    chinese = int(input("请输入语文成绩"))
    math = int(input("请输入数学成绩"))
    english = int(input("请输入英语成绩"))
    total = chinese + math + english
    c1 = cursor()
    try:
        one_data = f"insert into students.student_all values (%s,%s,%s,%s,%s,%s,%s); "

        c1.execute(one_data, (id, st_uid, name, chinese, math, english, total))
        print("写入成绩成功")
    except Exception:
        print("出问题了,请检查")

#06修改学生个人信息
def edit_one_grades():
    c1 = cursor()
    st_uid = input("请输入要修改的学号:")
    sql0 = c1.execute(f'select * from students.student_data where st_uid like "%' + st_uid + '%";')
    print(c1.fetchone( ))
    name = input("请输入名字:")
    sex = input("请输入性别:")
    birthday = input("请输入生日:")
    tel = input("请输入电话(11位):")
    path = input("请输入地址:")
    remark = input("请输入简介:")
    try:
        sql = 'UPDATE students.student_data SET name="%s",sex="%s",birthday="%s",tel="%s",path="%s",remark="%s"  WHERE st_uid="%s"' % (
            name, sex, birthday, tel, path, remark, st_uid)
        rows = c1.execute(sql)
        print("修改完成")
    except Exception:
        print("出问题了,请检查")

#07.修改学生成绩信息
def edit_data_grades():
    c1 = cursor()
    st_uid = input("请输入要修改的学号:")
    sql0 = c1.execute(f'select * from students.student_all where st_uid like "%' + st_uid + '%";')
    print(c1.fetchone( ))
    name = input("请输入名字:")
    chinese = int(input("请输入语文成绩:"))
    math = int(input("请输入数学成绩:"))
    english = int(input("请输入英语成绩:"))
    total = chinese + math + english
    try:
        sql = 'UPDATE students.student_all SET name="%s",chinese="%s",math="%s",english="%s",total="%s"  WHERE st_uid="%s"' % (
            name, chinese, math, english, total, st_uid)
        rows = c1.execute(sql)
        print("修改完成")
    except Exception:
        print("出问题了,请检查")

#08.删除学生成绩信息
def remove_achievement():
    st_uid = int(input("请输入要删除的学号:"))
    c1 = cursor()
    try:
        sql = 'delete from students.student_all where st_uid="%d"' % st_uid
        c1.execute(sql)
        connect().commit( )
        print("删除成功")
    except Exception:
        print("出问题了,请检查")
#09.删除学生个人信息
def remove_one_st():
    st_uid = int(input("请输入要删除的学号:"))
    c1 = cursor()
    try:
        sql = 'delete from students.student_data where st_uid="%d"' % st_uid
        c1.execute(sql)
        connect( ).commit( )
        print("删除成功")
    except Exception:
        print("出问题了,请检查")

if __name__ == '__main__':
    print(f"""
    |---------------------------------------------------------------|
    |                   欢迎来到学生信息管理系统                         |
    |                        现在是北京时间: {time.strftime('%Y-%m-%d %H:%M:%S')}       |
    |      请选择你要操作的命令                                         |
    |      0.退出系统                                                 |
    |      1.查看所有学生成绩信息                                       |
    |      2.查看所有学生个人信息                                       |
    |      3.查看指定学生成绩信息                                       |
    |      4.添加学生个人信息                                          |
    |      5.添加学生成绩信息                                          |
    |      6.修改学生个人信息                                          |
    |      7.修改学生成绩信息                                          |
    |      8.删除学生成绩信息                                          |
    |      9.删除学生个人信息                                          |
    |_______________________________________________________________|
    """)
    while True:
        n = int(input("请输入要操作的命令:"))
        if n == 1:
            view_all()
        elif n == 2:
            data_all()
        elif n == 3:
            one_achievement()
        elif n == 4:
            add_st_data()
        elif n == 5:
            add_achievement()
        elif n == 6:
            edit_one_grades()
        elif n == 7:
            edit_data_grades()
        elif n == 8:
            remove_achievement()
        elif n == 9:
            remove_one_st()
        elif n == 0:
            m_close()
            break



总结

一切前提条件就是需要有两张sql表,博主不建议一味的复制粘贴,有问题点击这里提问吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/83341.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多模态融合技术

多模态融合的主要目标是缩小模态间的异质性差异,同时保持各模态特定语义的完整性,并在深度学习模型中取得较优的性能。 一、多模态融合架构 多模态融合架构分为:联合架构,协同架构和编解码器架构。联合架构是将单模态表示投影到…

数据库运维 | 携程分布式图数据库NebulaGraph运维治理实践

作者简介:Patrick Yu,携程云原生研发专家,关注非关系型分布式数据存储及相关技术。 背景 随着互联网世界产生的数据越来越多,数据之间的联系越来越复杂层次越来越深,人们希望从这些纷乱复杂的数据中探索各种关联的需求…

[附源码]Python计算机毕业设计大学生心理健康咨询系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…

(免费分享)基于jsp,ssm酒店管理系统

开发工具:eclipse,mysql5.7 Tomcat8.0,jdk1.8 系统分用户前台和管理后台两部分 前台截图: 后台截图: package com.mypower.controller;import java.io.IOException; import java.io.OutputStream; import java.io.P…

行业如此内卷,品牌如何实现可持续招商增长?

文|螳螂观察(TanglangFin) 作者|陈小江 2019年,厦门的一位单亲妈妈,听了一堂课,驱车十几个小时抵达南京,就为找一个人。 找一个,能救企业的人。 由于股权融资对赌失败,这位原本坐…

【C初阶】第八篇——结构体

结构体的声明 什么是结构体 结构体的声明 结构成员的类型 结构体变量的定义和初始化 结构体成员的访问 结构体传参 结构体的声明 什么是结构体 结构体是一些值的集合,这些值称为成员变量.结构的每个成员可以是不同类型的变量. 结构体的声明 struct tag {member - list…

艾美捷人乳铁蛋白ELISA试剂盒预期用途注意事项

艾美捷Kamiya人乳铁蛋白ELISA试剂盒预期用途: 人乳铁蛋白ELISA是一种高度灵敏的双位点酶联免疫测定(ELISA)人类生物样品中乳铁蛋白的测定。仅供研究使用。不用于诊断程序。 引言 乳铁蛋白(LF)是一种具有抗菌活性的多…

Spring源码深度解析十六:@Aspect方式的AOP下篇 - createProxy

一、前言 文章目录:Spring源码深度解析:文章目录 我们上篇已经分析到了 Spring将已经找到所有适用于当前bean 的Advisor 集合。下面就要创建代理对象了,而代理对象的创建是从 AbstractAutoProxyCreator#createProxy()开始。下面我们就来看看…

微信小程序|基于小程序+C#制作一个聊天系统

此文主要基于小程序C#使用WebSocket制作一个聊天系统,基本实现小程序与服务端的聊天功能。用小程序自带的客服功能只能绑定微信且一对一沟通,接入市面上成熟的即时通讯预算又略显不足,干脆自己开发一个也能应对简单的业务场景。 实现流程1、服…

数据智仓功能介绍(二)

界面介绍 访问入口 具备权限的人员从系统管理后台进入界面,点击数据智仓,右侧是展示系统中已经配置的数据集。 数据集展示界面 如下图所示,系统中已经配置的数据集包含 数据集名称,修改人员,上次运行时间&#xff08…

matlab智能算法之遗传算法

智能算法之遗传算法智能算法之遗传算法1.背景2.算法3.案例3.1 案例求解二元函数的最大值智能算法之遗传算法 1.背景 2.算法 3.案例 3.1 案例求解二元函数的最大值 例1:计算二元函数f(x,y)20x2y2−10∗(cos(2πx)cos(2πy))f(x,y)20x^2y^2-10*(cos(2\pi x)cos(2…

[附源码]Node.js计算机毕业设计大学生健康系统Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

Qt扫盲-QToolButton 理论总结

QToolButton 理论总结1. 概述2. 使用场景3. 外观样式4. 菜单用途1. 概述 ToolButton 是一种特殊按钮,用于快速访问 特定命令或选项。与普通PushButton 按钮常用显示内容不同,ToolButton 通常不显示文本标签,而是显示图标。当然,也…

Windows与Linux利用系统自带实现共享文件夹的功能

这里需要两台机器在同一局域网或者可互相ping通。系统以Windows11和Windows Subsystem for Linux(Ubuntu22.04.1)或国产Linux发行版的统信UOS(版本号20)为例,其他的版本系统也类似,非Linux虚拟机也测试过&a…

蚁群算法详解-解决TSP问题

文章目录前言一、蚁群算法是什么?算法步骤二、基本原理三、数学模型1、算法中的参数设置2、构建路径轮盘赌例子3、更新信息素浓度代码终止四、代码展示五、参数实际设定1.参数设定的准则2.蚂蚁数量3.信息素因子4.启发函数因子5.信息素挥发因子6. 最大迭代次数7. 组合…

Android 实现相机(Camera)预览

CameraX 是一个 Jetpack 库,旨在帮助您更轻松地开发相机应用。 对于新应用,我们建议从 CameraX 开始。它提供一致且易于使用的 API,适用于绝大多数 Android 设备,并向后兼容 Android 5.0(API 级别 21)。 Ca…

Python基础篇学习

本篇博文目录:一.Python基础语法1.Python基础知识2.了解Python的基础语法结构3.python基础知识二.数据类型1.数字2.字符串3.布尔4.空值:None5.列表6.元祖7.字典8.Bytes9.集合(Set)三:程序三大结构( 顺序结构,分支结构,循环结构)1.顺序结构2.分…

2022-我的秋招之旅

1. 自我介绍 ​ 版1:(实习) ​ 面试官好,我叫xx,来自xx,目前研究生xx,就读于xx,在研究生期间,担任的职务为xx,在校期间参加各种比赛,如xx等&…

MATLB|实时机会约束决策及其在电力系统中的应用

目录 一、概述 二、数学模型 2.1 机会约束决策的情景方法 2.2 带有测量的情景方法 三、 机会约束决策的一种快速方法 3.1 通过仿射变换进行近似调节 3.2 可行域的仿射变换 3.3 两阶段决策算法 四、算例——配电网 4.1 防止过电压的有功功率削减 4.2 数值模拟 4.3 运…

第二十章 多源最短路之Floyd算法的思路即实现(超强解析)

第二十章 多源最短路之Floyd算法的思路即实现一、什么是多源最短路二、Floyd算法1、算法思路2、算法模板(1)问题:(2)代码模板:(3)代码分析:一、什么是多源最短路 我们之前了解到的d…