婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 教你用python實現一個無界面的小型圖書管理系統

教你用python實現一個無界面的小型圖書管理系統

熱門標簽:沈陽人工外呼系統價格 如何申請400電話費用 池州外呼調研線路 外呼系統哪些好辦 武漢外呼系統平臺 沈陽防封電銷卡品牌 江西省地圖標注 沈陽外呼系統呼叫系統 富錦商家地圖標注

一、需求了解

功能模塊

圖書信息

二、環境準備

安裝mysql數據庫

參考文章:

MySQL數據庫壓縮版本安裝與配置

MySQL msi版本下載安裝圖文教程

創建數據庫表

  • 創建數據庫

CREATE DATABASE bookmanage;

  • 使用數據庫

use bookmanage;

  • 創建表

create table books(
id int unsigned primary key auto_increment not null,
name varchar(20) default “”,
position varchar(40) default “”,
status enum(‘在庫', ‘出借') default ‘在庫',
borrower varchar(20) default “”
);

  • 插入數據

insert into books(name, position) value (‘python從入門到放棄', ‘A-1-1');

  • 查詢數據

select * from books where id=2;

  • 修改數據

update books set name=‘python';

  • 刪除數據

delete from book where id=3;

三、代碼實現

引入pymysql模塊

  • 安裝pymysql

命令:pip install pymysql

  • 封裝操作數據庫模塊
# -*- coding: utf-8 -*-
"""
=============================== 
@Time    : 2021/5/18 15:56
@Author  : flora.chen
@FileName: handle_mysql.py
@Software: PyCharm
===============================
"""
import pymysql

class MysqlDB:
    """
    操作mysql數據庫
    """
    def __init__(self, host, user, pwd, database=None, port=3306):
        """
        初始化數據庫鏈接
        :param host: 主機地址
        :param user: 用戶名
        :param pwd: 密碼
        :param database: 數據庫名稱,默認為空
        :param port: 端口號,默認3306
        """
        self.conn = pymysql.connect(
            host=host,
            user=user,
            password=pwd,
            database=database,
            port=port,
            cursorclass=pymysql.cursors.DictCursor
        )
        # 創建一個游標對象
        self.cur = self.conn.cursor()

    def update(self, sql):
        """
        進行增刪改操作
        :param sql: 需要執行的SQL
        :return:
        """
        # 執行SQL
        result = self.cur.execute(sql)
        # 提交事務
        self.conn.commit()
        return result

    def query(self, sql, one=False):
        """
        進行查詢操作
        :param one: 判斷是要返回所有查詢數據還是第一條,默認是所有
        :param sql: 要執行的SQL
        :return:
        """
        # 執行SQL
        self.cur.execute(sql)
        if one:
            return self.cur.fetchone()
        else:
            return self.cur.fetchall()

    def close(self):
        """
        斷開游標,關閉數據庫連接
        :return:
        """
        self.cur.close()
        self.conn.close()


if __name__ == "__main__":
    db = MysqlDB(host="localhost", user="root", pwd="root")
    print(db.query("select * from bookmanage.books"))
    # db.update("insert into bookmanage.books(name, position) value ('python從入門到放棄', 'A-1-1');")

圖案管理系統后臺實現

# -*- coding: utf-8 -*-
"""
=============================== 
@Time    : 2021/5/18 16:39
@Author  : flora.chen
@FileName: bookmanager.py
@Software: PyCharm
===============================
"""
from handle_mysql import MysqlDB

db = MysqlDB(host="localhost", database="bookmanage", user="root", pwd="root")


class BookManage:
    """
    圖書管理系統
    """

    @staticmethod
    def print_menu():
        """
        菜單打印
        :return:
        """
        print("---------------------菜單-------------------------")
        print("[1]: 添加圖書")
        print("[2]: 修改圖書")
        print("[3]: 刪除圖書")
        print("[4]: 查詢圖書")
        print("[5]: 圖書列表")
        print("[6]: 出借圖書")
        print("[7]: 歸還圖書")
        print("[8]: 退出")

    def add_book(self):
        """
        [1]: 添加圖書
        :return:
        """
        print("****************添加圖書****************")
        name = input("請輸入書名:")
        position = input("請輸入圖書位置:")
        if name and position:
            db.update("insert into books(name, position) value ('{}', '{}');".format(name, position))
            print("圖書添加成功")
        else:
            print("書名或者圖書位置不能為空,請重新輸入!")

        num = input("繼續添加請輸入1, 回車退回主菜單")
        if num == "1":
            self.add_book()

    def update_book(self):
        """
        [2]: 修改圖書
        :return:
        """
        print("****************修改圖書****************")
        book_id = input("請輸入需要修改的圖書ID:")
        result = db.query("select * from books where id={};".format(book_id), one=True)
        if result:
            print("當前數據為:{}".format(result))
            name = input("重新輸入書名,不修改輸入回車:") or result["name"]
            position = input("重新輸入位置,不修改輸入回車:") or result["position"]
            db.update("update books set name='{}', position='{}' where id={};".format(name, position, book_id))
            print("修改成功")
        else:
            print("您輸入的圖書ID不存在,請重新輸入~")

        num = input("繼續修改請輸入1, 回車退回主菜單")
        if num == "1":
            self.update_book()

    def delete_book(self):
        """
        [3]: 刪除圖書
        :return:
        """
        print("****************刪除圖書****************")
        book_id = input("請輸入需要修改的圖書ID:")
        result = db.query("select * from books where id={};".format(book_id), one=True)
        if result:
            print("當前數據為:{}".format(result))
            confirm_num = input("確定需要刪除這本書嗎?確認請按1,取消請按2:")
            if confirm_num == "1":
                db.update("delete from books where id={};".format(book_id))
                print("刪除成功")
            else:
                print("已確認不刪除該書籍~")
        else:
            print("系統中未找到該書籍!")

        num = input("繼續刪除請輸入1, 回車退回主菜單")
        if num == "1":
            self.delete_book()

    def query_book(self):
        """
        [4]: 查詢圖書
        :return:
        """
        print("****************查詢圖書****************")
        name = input("請輸入您要查詢的圖書名稱(模糊匹配):")
        if name:
            result = db.query("select * from books where name like '%{}%';".format(name))
            if result:
                print("當前查詢到如下書籍信息:{}".format(result))
            else:
                print("未查詢到相關書籍信息~")
        else:
            print("書名不能為空!")

        num = input("繼續查詢請輸入1, 回車退回主菜單")
        if num == "1":
            self.query_book()

    def book_list(self):
        """
        [5]: 圖書列表
        :return:
        """
        print("****************圖書列表****************")
        result = db.query("select * from books;")
        for i in result:
            print("編號:{}, 書籍名:{}, 位置:{}, 狀態:{}, 借閱人:{}".format(i["id"], i["name"], i["position"], i["status"],
                                                               i["borrower"]))

    def borrow_book(self):
        """
        [6]: 出借圖書
        :return:
        """
        print("****************出借圖書****************")
        book_id = input("請輸入需要借閱的圖書ID:")
        result = db.query("select * from books where id={};".format(book_id), one=True)
        if result:
            if result["status"] == "出借":
                print("抱歉,該書已經借出!")
            else:
                while True:
                    borrower = input("請輸入借閱者的名字:")
                    if borrower:
                        db.update("update books set borrower='{}' where id={};".format(borrower, book_id))
                        db.update("update books set status='出借' where id={};".format(book_id))
                        print("圖書借閱成功~")
                        break
                    else:
                        print("借閱者的名字不能為空, 請重新輸入")
        else:
            print("未查詢到相關書籍信息~")

        num = input("繼續借閱請輸入1, 回車退回主菜單")
        if num == "1":
            self.borrow_book()

    def back_book(self):
        """
        [7]: 歸還圖書
        :return:
        """
        print("****************歸還圖書****************")
        book_id = input("請輸入需要歸還的圖書ID:")
        result = db.query("select * from books where id={};".format(book_id), one=True)
        if result:
            if result["status"] == "在庫":
                print("該書是在庫狀態,請確認圖書編號是否正確!")
            else:
                db.update("update books set status='在庫' where id={};".format(book_id))
                db.update("update books set borrower='' where id={};".format(book_id))
                print("書籍歸還成功~")
        else:
            print("未查詢到相關書籍信息~")

        num = input("繼續歸還書籍請輸入1, 回車退回主菜單")
        if num == "1":
            self.borrow_book()

    def quit(self):
        """
        [8]: 退出
        :return:
        """
        print("****************退出****************")
        db.close()

    def main(self):
        """
        程序運行的流程控制
        :return:
        """
        print("---------------歡迎進入圖書管理系統----------------")
        while True:
            self.print_menu()
            num = input("請輸入選項:")
            if num == "1":
                self.add_book()
            elif num == "2":
                self.update_book()
            elif num == "3":
                self.delete_book()
            elif num == "4":
                self.query_book()
            elif num == "5":
                self.book_list()
            elif num == "6":
                self.borrow_book()
            elif num == "7":
                self.back_book()
            elif num == "8":
                self.quit()
                break
            else:
                print("您的輸入有誤~ 請按照菜單提示輸入,謝謝!")


if __name__ == "__main__":
    book = BookManage()
    book.main()

到此這篇關于教你用python實現一個無界面的小型圖書管理系統的文章就介紹到這了,更多相關Python實現圖書管理系統內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python函數實現學員管理系統
  • python面向對象版學生信息管理系統
  • Python實現學生管理系統(面向對象版)
  • python學生信息管理系統實現代碼
  • 教你用Python實現簡易版學生信息管理系統(含源碼)
  • 基于Python實現的購物商城管理系統
  • 一篇文章教你用Python實現一個學生管理系統

標簽:呂梁 常德 黑龍江 通遼 阿里 銅川 潛江 株洲

巨人網絡通訊聲明:本文標題《教你用python實現一個無界面的小型圖書管理系統》,本文關鍵詞  教,你用,python,實現,一個,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《教你用python實現一個無界面的小型圖書管理系統》相關的同類信息!
  • 本頁收集關于教你用python實現一個無界面的小型圖書管理系統的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日韩毛片一二三区| 亚洲va韩国va欧美va精品| 欧美日韩国产欧美日美国产精品| 911精品国产一区二区在线| 欧美精品一区二区三区一线天视频| 国产精品欧美一区喷水| 亚洲综合色在线| 精品一区二区三区不卡| 成人h动漫精品| 欧美一级搡bbbb搡bbbb| 久久先锋影音av鲁色资源| 综合亚洲深深色噜噜狠狠网站| 色综合天天综合在线视频| 91精品国产综合久久久久| 久久不见久久见中文字幕免费| 色综合久久久久综合体桃花网| 欧美国产日韩a欧美在线观看| 亚洲h在线观看| 91麻豆精品国产91久久久使用方法| 九九久久精品视频| 亚洲欧美中日韩| 久久aⅴ国产欧美74aaa| 久久精品亚洲麻豆av一区二区 | 美女被吸乳得到大胸91| 成人开心网精品视频| 欧美一区二区日韩| 国产精品一线二线三线精华| 在线播放一区二区三区| 亚洲男人的天堂在线aⅴ视频| 国产成a人亚洲精品| 99综合电影在线视频| 久久综合狠狠综合久久激情| av亚洲精华国产精华| 夜夜精品视频一区二区| 91美女精品福利| 日韩精品一区二区三区在线观看| 亚洲一级二级三级| 在线播放中文字幕一区| 五月天激情综合网| www.日韩大片| 欧美午夜寂寞影院| 国产xxx精品视频大全| 在线免费观看日韩欧美| 另类欧美日韩国产在线| 美腿丝袜亚洲一区| 依依成人精品视频| 狠狠色丁香久久婷婷综| 亚洲色图20p| 亚洲男帅同性gay1069| 26uuu成人网一区二区三区| 国产精品天天看| 色综合久久久久网| 国产成人亚洲综合色影视| 日韩美女视频一区二区在线观看| 日韩欧美第一区| 精品一区二区影视| 99精品国产热久久91蜜凸| 国产精品―色哟哟| 欧美久久久久久久久中文字幕| 欧美日韩国产片| 久久综合九色综合97_久久久| 亚洲国产精品成人综合| 国产精品久久久久久久久动漫| 免费在线欧美视频| 国产又黄又大久久| 日本一区免费视频| 丁香婷婷综合网| 日本美女一区二区三区| 欧美videos中文字幕| 国产美女精品在线| 日本成人在线电影网| 亚洲国产三级在线| 精品福利视频一区二区三区| 欧美日韩成人综合在线一区二区| 色综合 综合色| 91美女片黄在线观看| 99久久精品国产一区| av一区二区不卡| av色综合久久天堂av综合| 国产福利一区二区| 国产乱码精品一区二区三区五月婷| 免费精品视频在线| 久久精品国产在热久久| 麻豆精品一区二区| 狠狠色狠狠色综合日日91app| 久久精品国产成人一区二区三区| 日韩精品免费视频人成| 欧美精品一区二区高清在线观看| 欧美精品1区2区3区| 717成人午夜免费福利电影| 制服丝袜在线91| 欧美一卡二卡三卡四卡| 欧美电影免费观看高清完整版在线 | 国产精品成人免费在线| 综合久久给合久久狠狠狠97色| 国产精品国产三级国产aⅴ入口| 国产精品三级视频| 亚洲激情自拍视频| 亚洲成年人影院| 美女网站在线免费欧美精品| 久久se这里有精品| 国产成人小视频| 国产精品剧情在线亚洲| 国产精品女同一区二区三区| 一区精品在线播放| 洋洋av久久久久久久一区| 亚洲一区二区三区免费视频| 亚洲国产精品视频| 久久99精品国产麻豆婷婷| 国产精品羞羞答答xxdd| 99re在线精品| 欧美肥胖老妇做爰| 久久久久久久电影| 欧美午夜片在线观看| 91精品国产色综合久久 | 欧美精品日日鲁夜夜添| 日韩午夜激情av| 欧美人牲a欧美精品| 欧美va亚洲va香蕉在线| 国产精品久久久久久久浪潮网站| 亚洲一区日韩精品中文字幕| 麻豆精品视频在线观看| 成人av网站在线观看| 欧美日韩大陆在线| 国产欧美视频一区二区| 夜夜亚洲天天久久| 国产精品一区一区三区| 欧美性猛交xxxx乱大交退制版| 精品国产乱码久久久久久久久 | 欧美mv日韩mv| 夜夜亚洲天天久久| 国产美女视频一区| 欧美日韩免费观看一区二区三区| 丁香激情综合国产| 欧美怡红院视频| 精品国产乱码91久久久久久网站| 成人欧美一区二区三区视频网页| 免费在线成人网| 91美女精品福利| 国产亚洲制服色| 天堂蜜桃一区二区三区| 9i在线看片成人免费| 欧美一区二区三区成人| 中文字幕人成不卡一区| 麻豆成人综合网| 91久久精品日日躁夜夜躁欧美| 一区二区三区精品在线观看| 九九国产精品视频| 91激情在线视频| 国产欧美一区二区精品性| 日欧美一区二区| 色综合久久九月婷婷色综合| 久久伊99综合婷婷久久伊| 日韩高清不卡一区| 91精彩视频在线观看| 中文字幕av一区二区三区免费看| 亚洲韩国精品一区| 97se亚洲国产综合在线| 国产日韩欧美高清| 久久国产精品无码网站| 欧美视频在线观看一区| 国产精品区一区二区三区| 国产伦精品一区二区三区免费迷 | 亚洲一区二区三区爽爽爽爽爽| 国产成人精品网址| 精品久久免费看| 日本女优在线视频一区二区| 欧美日韩在线综合| 一区二区三区影院| 99视频一区二区| 中文字幕精品在线不卡| 国产裸体歌舞团一区二区| 日韩欧美一级二级三级久久久| 午夜精品一区二区三区电影天堂 | 国产精品丝袜黑色高跟| 色综合久久88色综合天天6| 国产精品免费av| 久久成人久久爱| 91精品国产福利| 日韩激情一二三区| 欧美一区欧美二区| 国产精品18久久久久久久久| 制服丝袜av成人在线看| 天天亚洲美女在线视频| 欧美午夜一区二区| 亚洲成人一区二区| 在线视频欧美区| 亚洲另类在线视频| 99免费精品视频| 亚洲欧美国产高清| 欧美在线观看视频一区二区三区| 一区二区三区精品视频在线| 国产精品一区二区视频| 国产精品传媒在线| 欧美曰成人黄网| 亚洲第四色夜色| 欧美va亚洲va国产综合| 成人黄色片在线观看| 亚洲综合一区在线| 日韩视频一区二区三区 |