Python链接数据库,利用python写一个简单的学员管理系统

用到的软件phpstudy、pycharm、Navicat Premium12

phpstudy是什么?

phpstudy是一个php运行环境的集成包,用户不需要去配置运行环境,就可以使用,phpstudy不仅是一款比较好用的php调试环境工具,并且还包括了开发工具和常用手册,对于新手是有很大帮助的。

Navicat简介

Navicat是一套快速、可靠的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat 是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信息。

本篇文章需要启动MySQL5.7.26,如下图所示:

 上面phpstudy的用户名和密码就对应了下面的Navicat的用户名和密码

 

 这里的连接名可以自己取,主机和端口保持默认就可以

 

 本篇文章以stu表为例,写入学生信息

以下是自写模块:

# coding=utf-8
import sys

import pymysql

class Mysql_python(object):

    #定义构造函数,定义链接数据库所需要的数据
    def __init__(self,host,username,userpass,port,charset,dbname):
        self.host_name=host
        self.uname=username
        self.upass=userpass
        self.uport=port
        self.char_set=charset
        self.db_name=dbname

    #链接数据库操作,使用构造函数中的数据进行与数据库得到链接
    def connect(self):
        self.con=pymysql.connect(
            host=self.host_name,
            user=self.uname,
            password=self.upass,
            port=self.uport,
            charset=self.char_set,
            db=self.db_name
        )

    #创建一个游标
    def cursor(self):
        self.cur=self.con.cursor()


    #关闭游标以及数据库
    def closs(self):
        self.cur.close()
        self.con.close()

    #定义对数据进行增/删/改操作的函数
    def sql_edit(self,sql):
        try:
            self.connect()
            self.cursor()
            self.num=self.cur.execute(sql)
        except Exception as err:
            print(err)
        else:
            self.con.commit()
            self.closs()
            return self.num

    #定义对数据进行查询的函数
    def sql_select(self,sql):
        try:
            self.connect()
            self.cursor()
            self.cur.execute(sql)
        except Exception as err:
            print(err)
            sys.exit()
        else:
            num=self.cur.fetchall()
            self.closs()
            return num

以下是主程序:

导入自写模块stu(本篇的py文件就为stu)

#coding=utf-8
import stu

# 链接数据库
host="localhost"
# 用户名
user="root"
# 登录密码
pswd="xxx"
# 数据库端口号
port=3306
# 编码类型
charset="utf8"
# 选择数据库
db="stu"

obj=stu.Mysql_python(host,user,password=pswd,port,charset,db)
obj.connect()

def addStu():
    n=1
    while True:
        stuid=input("请输入学生学号:").strip()
        stuname=input("请输入学生姓名:").strip()
        stuage=input("请输入学生年龄:").strip()
        stutel=input("请输入学生电话:").strip()
        if len(stuid)==0 or len(stuname)==0 or len(stuage)==0 or len(stutel)==0:
            print("不能输入为空")
        else:
            sql1 = f"select stuid from stu1 where stuid={int(stuid)}"
            obj.sql_select(sql1)
            if n <= 3:
                if obj.sql_select(sql1):
                    print("学号已存在,请勿重复添加")
                    n += 1
                else:
                    sql2 = f"insert into stu1(stuid,name,age,tel) values({int(stuid)},'{stuname}',{int(stuage)},{int(stutel)})"
                    try:
                        obj.sql_edit(sql2)
                    except Exception as err:
                        print(f"错误信息如下{err}")
                    else:
                        try:
                            userInput = input("添加成功是否继续添加[y|n]").lower().strip()
                        except Exception as err:
                            print(err)
                        else:
                            if userInput == "y":
                                n += 1
                                continue
                            elif userInput == "n":
                                break
                            else:
                                break
            else:
                print("输入次数达到上限")
                break


def deleteStu():
    stuid = input("请输入学号:").strip()
    if len(stuid) == 0:
        print("输入的学号不能为空,请重新选择")
    else:
        sql1 = f"select stuid from stu1 where stuid={int(stuid)}"
        obj.sql_select(sql1)
        if obj.sql_select(sql1):
            sql2 = f"delete from stu1 where stuid={int(stuid)}"
            try:
                obj.sql_edit(sql2)
            except Exception as err:
                print(f"错误信息如下:{err}")
            else:
                print("删除成功")
        else:
            print("学生不存在")

def selectStu():
    stuid = input("请输入学号:").strip()
    if len(stuid) == 0:
        print("输入的学号不能为空,请重新选择")
    else:
        sql1 = f"select stuid from stu1 where stuid={int(stuid)}"
        obj.sql_select(sql1)
        if obj.sql_select(sql1):
            sql2 = f"select * from stu1 where stuid={int(stuid)}"
            res = obj.sql_select(sql2)
            print(f"学生的学号是{res[0][1]}")
            print(f"学生的姓名是{res[0][2]}")
            print(f"学生的年龄是{res[0][3]}")
            print(f"学生的电话是{res[0][4]}")
        else:
            print("学生不存在")

def editStu():
    stuid = input("请输入学号:").strip()
    if len(stuid) == 0:
        print("输入的学号不能为空,请重新选择")
    else:
        sql1 = f"select stuid from stu1 where stuid={int(stuid)}"
        obj.sql_select(sql1)
        if obj.sql_select(sql1):
            name = input("请输入新的姓名:").strip()
            age = input("请输入新的年龄:").strip()
            tel = input("请输入新的电话:").strip()
            if len(name) == 0 or len(age) == 0 or len(tel) == 0:
                print("不能输入为空")
            else:
                sql2 = f"update stu1 set name='{name}',age={age},tel={tel} where stuid={int(stuid)}"
                try:
                    obj.sql_edit(sql2)
                except Exception as err:
                    print(f"错误信息如下:{err}")
                else:
                    print("修改成功")
        else:
            print("学生不存在")

if __name__ == '__main__':
    while True:
        print("\n欢迎使用学生管理系统\n")
        print("1. 添加新学员")
        print("2. 删除一个学员")
        print("3. 查看学员信息")
        print("4. 修改学员信息")
        print("5. 退出系统")
        try:
            choice = int(input("请选择需要执行的操作(输入选项的数字):").strip())
        except Exception as err:
            print(f"错误信息如下:{err}")
        else:
            if choice==1:
                addStu()
            elif choice==2:
                deleteStu()
            elif choice==3:
                selectStu()
            elif choice==4:
                editStu()
            elif choice==5:
                break







运行结果如下:

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,连接数据库可以使用Python中的pymysql模块,它可以让我们轻松地连接MySQL数据库并进行各种操作。下面是连接MySQL数据库的示例代码: ```python import pymysql # 连接数据库 conn = pymysql.connect( host='localhost', port=3306, user='root', password='password', db='restaurant', charset='utf8mb4' ) # 创建游标对象 cursor = conn.cursor() # 执行SQL语句 sql = 'SELECT * FROM dishes' cursor.execute(sql) # 获取查询结果 result = cursor.fetchall() # 输出结果 print(result) # 关闭游标和连接 cursor.close() conn.close() ``` 接下来,我们可以使用Python与MySQL一起编餐饮管理系统。下面是一个简单的示例,可以帮助你开始: ```python import pymysql # 连接数据库 conn = pymysql.connect( host='localhost', port=3306, user='root', password='password', db='restaurant', charset='utf8mb4' ) # 创建游标对象 cursor = conn.cursor() # 查询菜品信息 def query_dishes(): sql = 'SELECT * FROM dishes' cursor.execute(sql) result = cursor.fetchall() print(result) # 添加菜品信息 def add_dish(dish_name, price): sql = 'INSERT INTO dishes(dish_name, price) VALUES(%s, %s)' cursor.execute(sql, (dish_name, price)) conn.commit() # 修改菜品价格 def update_price(dish_id, price): sql = 'UPDATE dishes SET price=%s WHERE id=%s' cursor.execute(sql, (price, dish_id)) conn.commit() # 删除菜品信息 def delete_dish(dish_id): sql = 'DELETE FROM dishes WHERE id=%s' cursor.execute(sql, (dish_id,)) conn.commit() # 关闭游标和连接 cursor.close() conn.close() ``` 这只是一个简单的示例,你可以根据你的需要进行扩展。同时,你需要创建一个MySQL数据库,其中包含菜品信息表。然后,你可以在Python中使用上述代码与该数据库进行交互,以获取、添加、修改和删除菜品信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值