Python图书管理系统(二)

文章目录

  • 前言
  • PyMySQL 安装
  • PyMySQL 使用
  • 数据库方面的准备
  • 图书管理系统代码

  
  
  

前言

  

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

  
  
  

PyMySQL 安装

  

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

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

具体步骤:

1.在左上角File中找到settings
Python图书管理系统(二)_第1张图片
2.在Python Interpreter中点+
Python图书管理系统(二)_第2张图片
3.在搜索栏中输入pymysql,再点Install Package,即可安装成功
Python图书管理系统(二)_第3张图片

  
  
  

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)
        print(f)
    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')
        else:
            print('谢谢使用!')
            break

main()

运行效果:
  
展示所有图书信息
Python图书管理系统(二)_第4张图片
Python图书管理系统(二)_第5张图片
  
新增图书信息
Python图书管理系统(二)_第6张图片
Python图书管理系统(二)_第7张图片
  
修改图书信息
Python图书管理系统(二)_第8张图片
Python图书管理系统(二)_第9张图片
  
删除图书信息
Python图书管理系统(二)_第10张图片
Python图书管理系统(二)_第11张图片

  
查询图书信息
Python图书管理系统(二)_第12张图片
  
退出
Python图书管理系统(二)_第13张图片
这就是代码的全部功能了
  
小提示:
在展示数据时,数据堆在一起,没有注重美观。是因为美观问题可以留到和前端数据交互时再做,这里只要能把正确的数据取出即可。

                  在这里插入图片描述

你可能感兴趣的:(管理系统,python)