PyCharm连接数据库,实现运动会管理系统完成代码,以及每个功能函数的详细注释哦! 全网最详细代码,一步到位

本博客通过PyCharm 2022.3专业版连接MySQL 8.0数据库,创建并演示了一个运动会管理系统。内容包括管理员、裁判、运动员信息管理,分数增删改查以及运动会可视化。提供了详细代码和功能函数注释。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

运动会管理系统

1.配置:pycharm2022.3专业版.(使用pycharm社区版也可以的)

解释器:python3.11解释器

数据库:MySQL Workbench 8.0

我们直接开始代码演示:

1.我们需要用到的模块:

from pymysql import connect  # 用pycharm来连接数据库
from pyecharts import options as opts  # 可视化相关库
from pyecharts.charts import Pie  # 画图库引用饼图模块
from pyecharts.globals import ThemeType   # pyecharts画图主题
import random
import os  # 与操作系统交互的方法库
import sys  #与 Python 解释器及其环境交互的模块

2.pycharm连接数据库并选择mysql中我们要用到的数据库,这里默认使用本地root连接即可:

# 构建mysql数据库的连接
conn = connect(
    host="localhost",  # 主机名
    port=3306,  # 默认端口
    user="root",  # 使用主机
    password="******",  # 本地mysql账户密码,用自己的密码
    autocommit=True  # 自动确认提交本地的操作

)
cursor = conn.cursor()  # 获取游标对象
conn.select_db("school")  # 选择数据库

3.注!:在执行一下代码的时候先在上面你连接的数据库中建好以下四个表(否者程序会报错哦):

admin  , referee , player , score , 

有对管理员的信息管理函数,以及设置了项目的登陆模式:

cursor.execute("select * from admin")  # 在pycharm内来执行MySQL中的代码指令


def index(admin_no, admin_passwd):
    cursor.execute("select * from admin where admin_no='" + admin_no + "'")
    tel = cursor.fetchone()
    if tel[2] == admin_passwd:  # 管理员密码为111111
        print("登录成功")  # 这里只有管理员一号才可以登录程序应用!!!
    else:
        print("用户或密码错误")


# 管理员插入
def admin_insert(admin_no, admin_name, admin_passwd, admin_tel):
    cursor.execute(
        "insert into admin values('" + admin_no + "','" + admin_name + "','" + admin_passwd + "','" + admin_tel + "')")
    conn.commit()


# 管理员更改
def admin_update(admin_noo):
    admin_no = input("更改的编号:")
    admin_name = input("更改的姓名:")
    admin_passwd = input("更改的密码:")
    admin_tel = input("更改的电话:")
    cursor.execute(
        "update admin set admin_no='" + admin_no + "',admin_name='" + admin_name + "',admin_passwd='" + admin_passwd + "',admin_tel='" + admin_tel + "' where admin_no='" + admin_noo + "'")
    conn.commit()


# 管理员删除
def admin_delete(admin_no):  # 管理员
    cursor.execute("delete from admin where admin_no='" + admin_no + "'")
    conn.commit()

数据表admin样式:

 

4.对裁判的相关信息的修改操作函数

# 裁判插入
def referee_insert(referee_no, referee_name, referee_sex, referee_dept):
    cursor.execute(
        "insert into referee values('" + referee_no + "','" + referee_name + "','" + referee_sex + "','" + referee_dept + "')")
    conn.commit()


# 裁判更改
def referee_update(referee_noo):
    referee_no = input("更改的编号:")
    referee_name = input("更改的姓名;")
    referee_sex = input("更改的性别:")
    referee_dept = input("更改的项目:")
    cursor.execute(
        "update referee set referee_no='" + referee_no + "',referee_name='" + referee_name + "',referee_sex='" + referee_sex + "',referee_dept='" + referee_dept + "' where referee_no='" + referee_noo + "'")
    conn.commit()


# 裁判删除
def referee_delete(referee_no):
    cursor.execute("delete from referee where referee_no='" + referee_no + "'")
    conn.commit()

referee表简单演示:

 

5.参赛运动动员的信息修改:


# 运动员更改
def player_update(player_noo):
    player_no = input("更改的编号:")
    player_name = input("更改的姓名;")
    player_sex = input("更改的性别:")
    player_dept = input("更改的项目:")
    player_age = input("更改的年龄:")
    cursor.execute(
        "update player set player_no='" + player_no + "',player_name='" + player_name + "',player_sex='" + player_sex + "',player_dept='" + player_dept + "',player_age='" + player_age + "' where player_no='" + player_noo + "'")
    conn.commit()


# 运动员删除
def player_delete(player_no):
    cursor.execute("delete from player where player_no='" + player_no + "'")
    conn.commit()

player表样式:

 6.运动员分数的增删改查:


# 分数插入
def score_insert(score_no, score_pno, score_dno, score_sno, score_score):
    cursor.execute(
        "insert into score values('" + score_no + "','" + score_pno + "','" + score_dno + "','" + score_sno + "','" + score_score + "')")


# 分数更改
def score_update(score_noo):
    score_no = input("更改的成绩编号:")
    score_pno = input("更改的选手编号;")
    score_dno = input("更改的项目编号:")
    score_sno = input("更改的排名:")
    score_score = input("更改的成绩:")
    cursor.execute(
        "update score set score_no='" + score_no + "',score_pno='" + score_pno + "',score_dno='" + score_dno + "',score_sno='" + score_sno + "',score_score='" + score_score + "' where score_no='" + score_noo + "'")
    conn.commit()


# 分数删除
def score_delete(score_no):
    cursor.execute("delete from score where score_no='" + score_no + "'")
    conn.commit()

分数表样式:

 

7.对运动会的简单可视化: 

这里给出一个简单的可视化代码根据自己的需求来用哦

# html饼状图网页可视化
def demo_pie():
    pie = Pie()

    staff = ['运动员', '裁判员', '成绩', '其他', '管理员']
    num = [players, refereers, scorers, additional, adminers]
    pie.add("", [list(z) for z in zip(staff, num)])

    pie.set_global_opts(
        title_opts=opts.TitleOpts(title="运动会各人员pie图"),
        legend_opts=opts.LegendOpts(is_show=True),
        toolbox_opts=opts.ToolboxOpts(is_show=True),

    )


    theme = ThemeType.HALLOWEEN  # 调用了globers文件中的_ThemeType模块 中的主题
    pie.render("sports_pie.html")  # 文件名称

执行此代码后会在同一目录下生成一个名为sports_pie的html代码,可以在pycharm中打开,也可以在网页中打开:如

双击html文件得:(仅为部分html)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值