Python图书管理系统(二)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Python图书管理系统(二)

@[toc]

  
  
  

前言

  

上次写了用IO完成数据存储的图书管理系统,
这次更新一个用MySQL完成数据存储的图书管理系统。
  
但在这之前,需要先了解Python连接数据库的工具库 —— PyMySQL

  
  
  

PyMySQL 安装

  

方法1:打开cmd,输入 pip install pymysql。即可安装完毕。

方法2:在Pycharm里面下载该库。

具体步骤:

1.在左上角File中找到settings
在这里插入图片描述
2.在Python Interpreter中点+
在这里插入图片描述
3.在搜索栏中输入pymysql,再点Install Package,即可安装成功
在这里插入图片描述

  
  
  

PyMySQL 使用

  
0.先导包

import pymysql

  
1.打开数据库连接

db = pymysql.connect(host='localhost', user="root", passwd='自己的数据库密码', database='数据库名')

  
2.使用cursor()方法获取操作游标

cursor = db.cursor()

  
3.写sql语句

sql = '想怎样操作数据库的sql语句'

  
4.执行sql语句

try:
  cursor.execute(sql % (这里面写参数))
  db.commit()
except:
  db.rollback()   # 发生错误时回滚

  
5.关闭数据库连接

db.close()

  
  
全代码演示:

import pymysql
db=pymysql.connect(host='localhost',user='root',passwd='密码',database='数据库名')
cursor = db.cursor()
sql = 'insert into allbooks(书名,作者,种类,数量,剩余) values("%s", "%s", "%s", "%d", "%d")'
try:
    cursor.execute(sql % (name_book, author_book, type_book, num_book, surplus_book))
    db.commit()
except:
    db.rollback()
db.close()

  
补充:connect 的参数和参数的作用

  1. host : 服务器的主机地址
  2. port :mysql数据库的端口号(不常用)
  3. user : 用户名
  4. password : 密码
  5. database :操作的数据库名
  6. charset : 操作数据库使用的编码个数(不常用)

  
  
  

数据库方面的准备

  

在这里插入图片描述

在 final_assignment 数据库下,创建 allbooks表

  
  
  

图书管理系统代码

  

在了解了 PyMySQL 的安装和使用后,接下来就能看懂代码了

import pymysql


# 新增图书信息
def Add():
    name_book = input('请输入书名:')
    author_book = input('请输入作者:')
    type_book = input('请输入种类:')
    num_book = int(input('请输入数量:'))
    surplus_book = int(input('请输入剩余:'))
    db = pymysql.connect(host='localhost', user="root", passwd='MQ20201008', database='final_assignment')  # 打开数据库连接
    cursor = db.cursor()  # 使用cursor()方法获取操作游标
    sql = 'insert into allbooks(书名,作者,种类,数量,剩余) values("%s", "%s", "%s", "%d", "%d")'  # SQL 插入语句
    try:
        cursor.execute(sql % (name_book, author_book, type_book, num_book, surplus_book))  # 执行sql语句
        db.commit()
    except:
        db.rollback()  # 发生错误时回滚
    db.close()  # 关闭数据库连接


# 删除图书信息
def Delete():
    del_num = int(input('请输入你要删除图书的编号:'))
    db = pymysql.connect(host='localhost', user="root", passwd='MQ20201008', database='final_assignment')
    cursor = db.cursor()
    sql = 'delete from allbooks where 编号 = "%d"'
    try:
        cursor.execute(sql % del_num)
        db.commit()
    except:
        db.rollback()
    db.close()


# 修改图书信息
def Alter():
    alt_num = int(input('请输入你要修改图书的编号:'))
    a = input('请输入书名:')
    b = input('请输入作者:')
    c = input('请输入种类:')
    d = int(input('请输入数量:'))
    e = int(input('请输入剩余:'))
    db = pymysql.connect(host='localhost', user="root", passwd='MQ20201008', database='final_assignment')
    cursor = db.cursor()
    sql = 'update allbooks set 书名 = "%s",作者 = "%s",种类 = "%s",数量 = "%d",剩余 = "%d" where 编号 = "%d"'
    try:
        cursor.execute(sql % (a, b, c, d, e, alt_num))
        db.commit()
    except:
        db.rollback()
    db.close()


# 查询图书信息
def Search():
    sea_num = int(input('请输入你要查找图书的编号:'))
    db = pymysql.connect(host='localhost', user="root", passwd='MQ20201008', database='final_assignment')
    cursor = db.cursor()
    sql = 'select * from allbooks where 编号 = "%d"'
    try:
        cursor.execute(sql % sea_num)
        f = cursor.fetchall()
        print(f)
    except:
        db.rollback()
    db.close()


# 展示所有图书信息
def Show():
    db = pymysql.connect(host='localhost', user="root", passwd='MQ20201008', database='final_assignment')
    cursor = db.cursor()
    sql = 'select * from allbooks'
    try:
        cursor.execute(sql)
        f = cursor.fetchall()
        for i in f:
            print(i)
    except:
        db.rollback()
    db.close()


# 选择菜单
def Menu():
    print('-----------------------------功能菜单-----------------------------')
    print('\t\t\t\t1.新增图书信息')
    print('\t\t\t\t2.删除图书信息')
    print('\t\t\t\t3.修改图书信息')
    print('\t\t\t\t4.查询图书信息')
    print('\t\t\t\t5.展示所有图书信息')
    print('\t\t\t\t0.退出')
    print('----------------------------------------------------------------')


# 主程序
def main():
    print('=========================资料室图书管理系统=========================')
    while True:
        Menu()
        select = eval(input('请选择功能:'))
        if select == 1:
            Add()
            print('新增信息完成!')
            print('\n')
        elif select == 2:
            Delete()
            print('删除信息完成!')
            print('\n')
        elif select == 3:
            Alter()
            print('修改信息完成!')
            print('\n')
        elif select == 4:
            Search()
            print('\n')
        elif select == 5:
            Show()
            print('\n')
        elif select == 0:
            print('谢谢使用!')
            break
        else:
            print("输入错误!请重新输入!")

main()

  

  

运行效果:

  

展示所有图书信息

在这里插入图片描述

在这里插入图片描述

  

新增图书信息

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

  

修改图书信息

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

  

删除图书信息

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

  

查询图书信息

在这里插入图片描述

  

退出

在这里插入图片描述
这就是代码的全部功能了

  
小提示:

在展示数据时,数据堆在一起,没有注重美观。是因为美观问题可以留到和前端数据交互时再做,这里只要能把正确的数据取出即可。

                  在这里插入图片描述

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
存储 前端开发 数据库
基于python flask 的图书管理系统,有登录界面,实现简单增删改查,可以做课程设计使用
本文介绍了一个基于Python Flask框架的图书管理系统,该系统具备登录界面,并实现了基本的增删改查功能,适合作为课程设计使用。
107 3
基于python flask 的图书管理系统,有登录界面,实现简单增删改查,可以做课程设计使用
|
4月前
|
前端开发 关系型数据库 MySQL
Python基于Django框架图书管理系统,Bootstrap框架UI,后台EasyUI框架UI,有登录,实现增删改查的富文本效果
本文介绍了一个使用Python Django框架开发的图书管理系统,该系统采用Bootstrap框架进行前端UI设计,EasyUI框架用于后台UI界面,集成了富文本编辑器,并实现了登录及增删改查功能。
|
4月前
|
存储 数据可视化 数据安全/隐私保护
【python】python图书管理系统_普通用户+管理员菜单(源码+论文)【独一无二】
【python】python图书管理系统_普通用户+管理员菜单(源码+论文)【独一无二】
|
存储 小程序 数据库管理
【python基础知识】14.图书管理系统的搭建(类与对象实操)
【python基础知识】14.图书管理系统的搭建(类与对象实操)
366 0
|
7月前
|
数据库 C++ Python
图书管理系统-python
图书管理系统-python
86 0
|
存储 Java C++
用python写图书管理系统
用python写图书管理系统
240 4
|
存储 Python
python实现图书管理系统(超详细)
python实现图书管理系统 图书管理系统 python实现图书管理系统 图书管理系统: 图书的功能: 现在开始添加数据: 增加数据 删除数据 查询数据 图书位置修改 图书的借出 图书的还回 主体界面 完整代码 功能运行截图
1756 0
python实现图书管理系统(超详细)
|
Python
Python分分钟实现图书管理系统(含代码)
Python分分钟实现图书管理系统(含代码)
370 0
|
存储 前端开发 关系型数据库
Python图书管理系统(终章)
Python图书管理系统(终章)
421 0
Python图书管理系统(终章)
|
存储 关系型数据库 MySQL
Python图书管理系统(一)
初识python的小乐趣
435 0