使用派森python类 打造图书管理系统~

Django基础教程(五十七)Django图书管理系统的图书详情功能:【代码魔法师速成】Django图书详情页揭秘:从‘Hello World’到让数据会说话的实战魔法! [特殊字符] 嘿,码农新星!今天咱们不聊理论,直接动手用Django搭建一个会“说话”的图书详情页!你将掌握如何用3行代码让数据库里的图书信息在网页上“蹦迪”,用动态URL实现《哈利波特》与《三体》的秒速切换,再用Bootstrap让页面美到犯规。本文附完整可跑代码,包含防止“404猝死”的异常处理彩蛋,专治“一看就会,一写就废”的综合症。跟着做,让你的第一个Django项目能跑更能打! 阅读详情

上代码~

from datetime import datetime
from time import sleep

class Book:
    def __init__(self, Name, Price, State):
        self.State = State
        self.Price = Price
        self.Name = Name

    def __str__(self):
        State = "已借出"
        if self.State == 1:
            State = "未借出"
        return "名称:《%s》,单价:%.2f元,状态:%s" % (self.Name, self.Price, State)


class BookManager:
    books = []
    password = "*#041#*"

    def init(self):
        self.books.append(Book("茶花女", 32.6, 0))
        self.books.append(Book("傲慢与偏见", 41.8, 1))
        self.books.append(Book("罗密欧与朱丽叶", 29.5, 1))

    def Menu(self):
        self.init()
        print("#########################")
        print("## " + str(datetime.now())[:-7] + " ##")
        print("#########################\n")
        print("书籍出租管理系统 v1.0 内测版\n菜单:")
        print("1.显示书籍\n2.增加书籍\n3.借出书籍\n4.归还书籍\n5.统计书籍\n-1.退出系统")
        while True:
            try:
                menu_item = int(input("*************请输入菜单编号:").strip())
                if menu_item == 1:
                    self.show_all_books()
                elif menu_item == 2:
                    self.add_books()
                elif menu_item == 3:
                    self.lend_books()
                elif menu_item == 4:
                    self.return_books()
                elif menu_item == 5:
                    self.count_books()
                elif menu_item == -1:
                    print("谢谢使用!")
                    sleep(2)
                    break
                else:
                    print('请输入正确的选项!')
            except ValueError:
                print('请输入正确的选项!')

    def show_all_books(self):
        for book in self.books:
            print(str(book))

    def add_books(self):
        in_password = input("请输入图书管理员验证码:").strip()
        if in_password == self.password:
            book_name = input("请输入添加的书籍名称:")
            ret = self.check_books(book_name)
            if ret is not None:
                print("书籍已经存在!")
            else:
                book_price = float(input("请输入书籍单价:"))
                new_book = Book(book_name, book_price, 1)
                self.books.append(new_book)
                print("书籍添加成功!")
        else:
            print("验证码错误!")

    def lend_books(self):
        book_name = input("请输入借出书籍的名称:")
        ret = self.check_books(book_name)
        if ret is not None:
            if ret.State == 0:
                print("您要借的书籍已经借出去了!")
            else:
                ret.State = 0
                print("借出书籍成功!")
        else:
            print("您要借的书籍不存在!")

    def return_books(self):
        book_name = input("请输入归还书籍的名称:")
        ret = self.check_books(book_name)
        if ret is None:
            print("您要归还的书籍不存在!")
        else:
            if ret.State == 1:
                print("您要归还的书籍未借出!")
            else:
                lend_days = int(input("请输入本次借书的天数:"))
                fee = round(ret.Price * lend_days * 0.1, 2)
                print("借出%d天,应付租书费%.2f元。" % (lend_days, fee))
                while True:
                    pay = float(input("请输入支付金额(元):"))
                    if pay < fee:
                        print("您所输入的金额不够!")
                    else:
                        break
                if pay >= fee:
                    print("找零:%.2f元。" % (pay - fee))
                ret.State = 1
                print("还书成功!")

    def count_books(self):
        lend_count = 0
        not_lend_count = 0
        for item in self.books:
            if item.State == 0:
                lend_count += 1
            else:
                not_lend_count += 1
        print("已借出书籍:%d册" % lend_count)
        print("未借出书籍:%d册" % not_lend_count)
        print("共有书籍:%d册" % len(self.books))

    def check_books(self, Name):
        for book in self.books:
            if book.Name == Name:
                return book
        else:
            return None


if __name__ == "__main__":
    manager = BookManager()
    manager.Menu()

欲知代码内容,请听下回详解!


原创不易,求打赏 :)

关于我:11岁小学生,马上六年级了,喜欢个人研究一些python和c++的编程内容,希望以后能去大厂(最好是鹅厂)工作。
O(∩_∩)O

Python实现简易的图书借阅管理系统 本篇文章将编写一个简易的图书借阅管理系统,可以实现一些基本的功能。 图书借阅管理系统需求分析: 1. 书籍的属性信息:书名, 作者, 借阅状态(借出数量, 未借的数量) 2. 书籍借阅需要的操作: 1). 录入书籍信息; 2). 借阅书籍信息; 3). 归还书籍; 4). 查询书籍信息; ... 阅读详情

相关推荐

基于python的图书管理系统

基于python的图书管理系统源代码!!

Python作业---文章管理系统

Python作业—文章管理系统 控制台版文章管理系统: 1、用户管理系统 2、文章的管理和控制 |-- 密码加密 |-- 时间API |-- 实现数据的持久化 废话少说,先上代码: import hashlib import os import time import datetime import sys def Init(): #初始化 global USER_LIST isExist = os.path.exists("./data") if not isExist: o

Han_nashi的博客 643

图书信息管理系统python+mysql.zip

图书信息管理系统python+mysql.zip

Python实现文件管理系统

文章目录第一题:![在这里插入代码片](https://img-blog.csdnimg.cn/740485106ca64e30a037b9f4f6e5ebec.png)第二题:使用面向对象实现一个栈 第一题: ` import pickle from re import T import os import hashlib import datetime from secrets import choice import sys import hashutil as hashutil from os im

qq_50589028的博客 5485

python写的个人博客管理系统

在pycharm上利用python语言编写的个人博客管理系统 能够进行持久化存储登录,运行时会在系统生成一个本地文件夹用来存储用户数据 ,下载即可使用包含exe可执行文件以及各模块代码 模拟简单的博客 1.账号注册,登陆验证 2.写文章,包含【标题,作者,时间,内容】 3.查询文章,列出所有文章及时间 4.可查看其中一篇文章 5.删除文章 6.修改文章 7.退出系统

python下载博客文章

使用python的urllib和BeautifulSoup下载韩寒博客所有的文章,下载格式是.txt

python用类编写图书管理系统

yyh_linux_note的博客 819

用Python玩转Milvus:从安装SDK到完成第一个向量搜索Demo

本文为Python开发者提供了一份详细的Milvus向量数据库实战指南。文章重点讲解了如何规避版本兼容性陷阱,正确部署Milvus服务端并安装匹配的Python SDK。通过一个电影推荐系统的完整案例,演示了从数据建模、集合创建、向量插入、索引构建到执行混合搜索的全流程,帮助开发者快速上手并完成第一个向量搜索Demo。

weixin_29239279的博客 192

python做数据库管理系统_python+mysql做一个图书管理系统?

开发一个图书管理系统,首先需要对此项目进行一个简单的需求分析:主要功能包括:图书信息图书分类用户信息用户借阅统计管理员管理员权限接下来可以进行数据库的设计,在这里我提供一个简单的数据库表结构,如有不合理以及需要补充的可以下方进行补充。图书信息表:字段:自增id(主键)、书名、作者、出版社、简介、缩略图、出版日期、ISBN(国际标准书号(International Standard Book Num...

weixin_39787345的博客 2805

Docker版OnlyOffice中文字体配置全攻略:从字号调整到字体添加

本文详细介绍了在Docker版OnlyOffice中配置中文字体和调整字号的完整方案。通过容器内操作和配置文件修改,实现中文标准字号映射及思源、阿里巴巴等优质字体的集成,提升文档排版的规范性和专业性。特别针对企业级部署提供了性能优化建议和常见问题解决方案。

weixin_28309571的博客 137

gitlab远程子仓库配置SSH - 保姆级教程

在网上搜索了一些方法,但是不够详细,走了好多弯路,所以记录下配置SSH的详细过程吧。

是菠萝的博客 1万+

hive导数据到mysql 自增主键出错_python+mysql做一个图书管理系统?

开发一个图书管理系统,首先需要对此项目进行一个简单的需求分析:主要功能包括:图书信息图书分类用户信息用户借阅统计管理员管理员权限接下来可以进行数据库的设计,在这里我提供一个简单的数据库表结构,如有不合理以及需要补充的可以下方进行补充。字段:自增id(主键)、书名、作者、出版社、简介、缩略图、出版日期、ISBN(国际标准书号(International Standard Book Number),专...

weixin_39861955的博客 118

nCode:GlyphWorks案例教程一

nCode GlyphWorks案例一Comparing Frequency Content of Two Different Tests案例文件目标配置选择数据 Comparing Frequency Content of Two Different Tests 在本案例中,我们将比较来自两个不同测试的六个加速计通道的频率内容。将三轴加速度计放置在车辆的左前角和右前角,然后分别在两个不同的试验路面上行驶12分钟以上。 案例文件 此案例的文件(采用nCode DAC格式)位于nCode安装目录下的\demo

追月行的博客 1万+

用Python与SQLite构建高效数据库毕业设计

最新接入DeepSeek-V3模型,点击下载最新版本InsCode AI IDE 用Python与SQLite构建高效数据库毕业设计 在当今数字化时代,数据库技术已经成为计算机科学领域的重要组成部分。无论是企业级应用还是个人项目开发,掌握数据库设计与实现的能力都显得尤为重要。对于即将完成学业的大学生来说,选择一个合适的主题作为毕业设计至关重要。本文将探讨如何利用Python语言结合SQLite轻量...

OnyxPanther23的博客 1063

激光除草技术原理与应用全解析

激光除草技术通过光热、光化学等效应精准破坏杂草组织,核心参数包括功率(20-6000W)、波长(400nm-10.6μm)和脉冲宽度。主要应用于大田作物(如玉米、棉花)、经济作物(烟草、果树)及城市绿化,具有环保(无化学污染)、高效(识别率≥95%)和非接触等优势,但存在设备成本高(20-50万元)、技术门槛高等局限。当前技术融合AI识别、多光谱协同等创新,国产设备如华工智耘已实现95.3%识别精度。虽短期投入较高,但长期可降低30%除草成本,并带来环境效益(每亩减排1.2吨CO₂)

start_up_go的博客 557

7.3 空间矢量调制(SVM)整数算法

本文提出了一种基于整数运算的空间矢量调制(SVM)优化实现方案,适用于计算资源有限的Cortex-M0平台。针对传统SVM算法中复杂的三角函数和浮点运算问题,重点优化了扇区判断和占空比计算两个关键环节。在扇区判断方面,采用基于电压分量符号和相对大小的三变量法,避免了角度计算;在占空比计算方面,通过几何关系将作用时间表示为电压分量的线性组合,并采用定点数实现。方案还详细讨论了系数定点化、死区补偿等实现细节,在保证精度的同时显著降低了计算复杂度。实验结果表明,优化后的整数算法在M0平台上仅需50-80个周期即可

技术工作者 944

2024-2025全网最全计算机软件毕业设计选题大全:不要踩坑了✅

毕业季来临,近期开题的同学越来越多,学生们往往会感到迷茫和不知所措。选题作为毕业设计的第一步,直接影响到后续的研究进展与设计成果的质量,今天我们通过这几年的毕设从业经验,以及辅导案例,来讲一下如何快速选题。

qq_40076950的博客 1万+

基于通义千问2.5-7B-Instruct的技术深度解析

通义千问2.5-7B-Instruct是一个基于Transformer架构的大型语言模型,具有70亿参数。它通过自注意力机制和前馈神经网络处理输入序列,能够捕捉长距离依赖关系,适用于多种NLP任务。微调是指在预训练模型的基础上,使用特定任务的数据进行进一步训练,以使模型更好地适应特定任务。微调可以显著提高模型在特定任务上的性能。通义千问2.5-7B-Instruct是一个强大的语言模型,适用于多种NLP任务。通过深入理解其架构、微调方法和核心代码,可以更好地应用于实际场景。

zhangjiaofa的专栏 1569

收心了,年过完了!

其次大多数人的简历上,基本都是那些项目,看看本科课设就知道了,什么跑马灯,避障小车、图书管理系统等,本科做不了什么“改变世界”的项目。老师想看的是你有没有相关的经历,是否有科研的能力,能不能直接去了直接“干活”!A:每个项目都会总结出来可能会被问到的问题,比如项目的创新点,用的算法如何改进等等,所以跟着项目走下来,好好学,再结合老师总结的问题,问题不大。首先对一些可以灵活调整的项目,我们会让老师告诉大家“调整点”,即如何修改参数,基于底层逻辑对复试项目进行调整,这样才能是属于你的专属项目。

xiaomage_mengma的博客 304

使用 MATLAB/Simulink 构建一个多时间尺度下的微电网经济运行优化策略模型

本文介绍了基于Simulink的多能互补微电网系统建模方法,重点关注多时间尺度下的经济运行优化策略。内容包括:系统背景与目标、微电网结构设计(光伏、风电、储能、柴油发电机等模块)、多时间尺度能量管理架构(日前优化、日内滚动优化、实时控制)的实现步骤,以及仿真运行与结果分析。教程详细说明了如何在Simulink中调用优化算法,设置仿真参数,并提供了进阶研究方向和资源推荐。该模型为研究微电网的经济运行和智能调度提供了完整的仿真平台解决方案。

amy_mhd的博客 172

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

毕业设计实战:基于Java/SpringBoot的冷链温控系统开发指南

物联网系统开发是当前企业级应用的热点,其核心在于实现物理设备与软件系统的数据交互与智能控制。其基本原理是通过传感器采集数据,经由网络协议传输至后端服务器进行处理与存储,最终通过可视化界面进行监控与管理。这种架构的技术价值在于打通了物理世界与数字世界,实现了业务流程的自动化与智能化,广泛应用于工业监控、智慧农业、环境监测等领域。本文聚焦于冷链物流这一具体应用场景,深入探讨如何构建一个实时、可靠的温控监控平台。系统涉及数据采集、实时通信、数据可视化等关键技术,并提供了基于SpringBoot、WebSocket

weixin_34032621的博客 351

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

py-opp 类(class)

类的创建 class 类名:   pass class Bar: def foo(self,arg): # self ,是传的实例对象, print('self:',self,arg) #因为类属性和方法会分别绑定和返回给实例对象 z1 = Bar() print('实例对象:',z1) z1.f...

weixin_34130389的博客 127

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 409
上一篇: 西加加C++入门语法(与派森python相对应)
下一篇: python自制海龟时钟
ternary_tree
博客等级 码龄6年 82粉丝 11原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值