基于Python编写一个ISBN查询工具
作者:winfredzhang 发布时间:2022-02-22 09:43:21
标签:Python,ISBN,查询
1.引言
效果图:
ISBN查询工具通常用于图书管理、图书销售、图书收集和阅读等场景。以下是一些具体的应用场景:
图书管理系统:ISBN查询工具可以帮助图书管理员快速准确地查询图书信息,包括书名、作者、出版社、出版日期、价格等,从而方便图书分类、归档和借阅。
图书销售:ISBN查询工具可以帮助书店、图书网站等销售渠道快速准确地查询图书信息,方便顾客浏览和购买图书。
图书收集:ISBN查询工具可以帮助书友快速找到自己需要的图书,并记录下来,方便后续购买或借阅。
阅读:ISBN查询工具可以帮助读者快速查询图书信息,包括书名、作者、出版社、出版日期、价格等,从而帮助读者更好地了解书籍内容,选择适合自己的读物。
2.实例分析
import wx
import requests
class BookInfoFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title='图书信息查询', size=(400, 300))
panel = wx.Panel(self)
# 创建文本框和标签
self.isbn_label = wx.StaticText(panel, label='输入书号:')
self.isbn_text = wx.TextCtrl(panel, style=wx.TE_PROCESS_ENTER)
self.title_label = wx.StaticText(panel, label='书名:')
self.title_text = wx.TextCtrl(panel, style=wx.TE_READONLY)
self.title_text.SetBackgroundColour(wx.WHITE)
self.title_text.SetForegroundColour(wx.BLACK)
# 创建查询按钮
self.query_button = wx.Button(panel, label='查询')
# 设置文本框和按钮的布局
hbox1 = wx.BoxSizer(wx.HORIZONTAL)
hbox1.Add(self.isbn_label, flag=wx.RIGHT, border=5)
hbox1.Add(self.isbn_text, proportion=1)
hbox2 = wx.BoxSizer(wx.HORIZONTAL)
hbox2.Add(self.title_label, flag=wx.RIGHT, border=5)
hbox2.Add(self.title_text, proportion=1)
hbox3 = wx.BoxSizer(wx.HORIZONTAL)
hbox3.Add(self.query_button, flag=wx.ALIGN_CENTER)
vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add((20, 20), proportion=1)
vbox.Add(hbox1, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=10)
vbox.Add(hbox2, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.TOP, border=10)
vbox.Add((20, 20), proportion=1)
vbox.Add(hbox3, flag=wx.ALIGN_CENTER|wx.TOP|wx.BOTTOM, border=10)
vbox.Add((20, 20), proportion=1)
panel.SetSizer(vbox)
# 绑定事件处理函数
self.isbn_text.Bind(wx.EVT_TEXT_ENTER, self.on_isbn_enter)
self.query_button.Bind(wx.EVT_BUTTON, self.on_query)
def on_isbn_enter(self, event):
self.on_query(event)
# def on_isbn_enter(self, event):
# self.on_query(event)
def on_query(self, event=None):
isbn = self.isbn_text.GetValue()
if not isbn:
return
url = 'https://openlibrary.org/api/books?bibkeys=ISBN:{}&format=json&jscmd=data'.format(isbn)
# url = f'https://api.douban.com/v2/book/isbn/{isbn}'
response = requests.get(url)
if response.status_code == 200:
book_data = response.json()
if book_data:
# book_info = book_data['ISBN:{}'.format(isbn)]
book_info = book_data['ISBN:{}'.format(isbn)]
self.title_text.SetValue(book_info['title'])
return
self.title_text.SetValue('')
# def on_query(self, event=None):
# isbn = self.isbn_text.GetValue()
# if not isbn:
# return
# url = f'https://api.douban.com/v2/book/isbn/{isbn}'
# response = requests.get(url)
# if response.status_code == 200:
# book_data = response.json()
# if book_data:
# book_info = book_data['ISBN:{}'.format(isbn)]
# self.title_text.SetValue(book_info['title'])
# return
# self.title_text.SetValue('')
if __name__ == '__main__':
app = wx.App()
frame = BookInfoFrame()
frame.Show(True)
app.MainLoop()
3.总结
这是一个使用 wxPython 和 Open Library API 查询 ISBN 书号对应书名的小程序。程序界面包含一个输入框和一个查询按钮,用户可以在输入框内输入 ISBN 书号,点击查询按钮后会自动查询对应书名并显示在文本框内。该程序的主要实现代码在 BookInfoFrame 类的构造函数中,其中绑定了输入框回车和查询按钮的事件处理函数,通过调用 Open Library API 查询对应 ISBN 书号的书名并显示在文本框中。
来源:https://blog.csdn.net/winniezhang/article/details/129482088


猜你喜欢
- 数据可视化是任何探索性数据分析或报告的关键步骤,它可以让我们一眼就能洞察数据集。目前有许多非常好的商业智能工具,比如Tableau、goog
- 00 小编的问题小编向我们反馈,从微信里复制出来的图片,会被微信屏蔽,无法显示我们后天采用的是百度编辑器,而且已经做了远程图片本地化,于是检
- 本文实例为大家分享了Python将图片彩色转化为素描的具体代码,供大家参考,具体内容如下第一种:from PIL import Image,
- 本文实例讲述了Python功能键的读取方法。分享给大家供大家参考。具体分析如下:先getch一下得到a,如果等于0或者224,就说明是功能键
- 1.前言开发中,[]byte类型和string类型需要互相转换的场景并不少见,直接的想法是像下面这样进行强制类型转换:a := "
- 1 分布式锁概述谈到分布式锁,必然是因为单机锁无法满足要求,在现阶段微服务多实例部署的情况下,单机语言级别的锁,无法满足并发互斥资源的安全访
- 1、实例方法/对象方法实例方法或者叫对象方法,指的是我们在类中定义的普通方法。只有实例化对象之后才可以使用的方法,该方法的第一个形参接收的一
- 解决方法之一:如果pytorch在进行model.cuda()操作需要花费的时间很长,长到你怀疑GPU的速度了,那就是不正常的。如果你用的p
- 1.前端接口调用2.register访问入口//查询一个用户下所有的subnetws.Route(ws.GET("/subnets
- Mysql中limit的用法:在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们
- 1、字典(dict)dict = {‘name': ‘Zara', ‘age': 7, ‘class': ‘
- 介绍我们一起来做个示例,在.NET中新建一个类,并在这个类里新建一个方法,然后在SQL Server中调用这个方法。按照微软所述,通过宿主
- 导语害!现在是10月份了,国庆过完也降温了——还有几个月就过年了,哦吼~这一年就快过去了,不知道小编带给大家这么多的表白代码都用了没?用了没
- (1) 针对较为复杂的跨多表的数据业务级别的约束,可以通过触发器来替代大量的后台判断代码,效率较高且便捷。 (2) 如果想通过触发器辅助业务
- 文件结构html_downloader.py - 下载网页html内容#!/usr/bin/python# -*- coding: UTF-
- 当 Yii框架仍处于 RC(候选版)阶段时,我们 对它进行过报道,那时它刚刚全面达到候选版本阶段,(现在它已经发布了正式版本)我们感觉是时候
- 一、朋友圈九宫格效果图二、图片基本操作打开要处理的图片判断打开的图片是否为正方形如果是正方形,就进行九等分,如果不是正方形,先用白色填充为正
- JPGjpg全名是JPEG 。JPEG 图片以 24 位颜色存储单个光栅图像。JPEG 是与平台无关的格式,支持最高级别的压缩,不过,这种压
- 前言Qt 自带的工具提示样式不太好看,就算加了样式表也时不时会失效,同时工具提示没有阴影,看起来就更难受了。所以本篇博客将会介绍自定义工具提
- python excel文件(.xls文件)如何处理xlrd 用于读取文件,xlwt 用于写入文件,xlutils 是两个工具包的桥梁,也就