基于Python编写一个ISBN查询工具

 更新时间:2023年05月06日 10:20:58   作者:winfredzhang  
这篇文章主要为大家详细介绍了如何利用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 书号的书名并显示在文本框中。

到此这篇关于基于Python编写一个ISBN查询工具的文章就介绍到这了,更多相关Python ISBN查询工具内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 执行Python程序时模块报错问题

    执行Python程序时模块报错问题

    这篇文章主要介绍了执行Python程序时模块报错问题及解决方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • 通过python连接Linux命令行代码实例

    通过python连接Linux命令行代码实例

    这篇文章主要介绍了通过python连接Linux命令行代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Python八大常见排序算法定义、实现及时间消耗效率分析

    Python八大常见排序算法定义、实现及时间消耗效率分析

    这篇文章主要介绍了Python八大常见排序算法定义、实现及时间消耗效率分析,结合具体实例形式对比分析了冒泡排序、直接插入排序、选择排序、归并排序、希尔排序、桶排序、堆排序等排序算法的使用与执行效率,需要的朋友可以参考下
    2018-04-04
  • 分享一个简单的python读写文件脚本

    分享一个简单的python读写文件脚本

    这篇文章主要介绍了分享一个简单的python读写文件脚本,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • 详解Python3的TFTP文件传输

    详解Python3的TFTP文件传输

    本篇内容给大家详细讲述了Python3的TFTP文件传输的相关知识点,有需要的朋友可以参考下。
    2018-06-06
  • Python直接使用plot()函数画图的方法实例

    Python直接使用plot()函数画图的方法实例

    Python非常简单而又非常强大,它的功能之一就是画出漂亮的图表,实现数据的可视化,下面这篇文章主要给大家介绍了关于Python直接使用plot()函数画图的相关资料,需要的朋友可以参考下
    2022-05-05
  • pyspark操作MongoDB的方法步骤

    pyspark操作MongoDB的方法步骤

    这篇文章主要介绍了pyspark操作MongoDB的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • 使用Python Tkinter实现剪刀石头布小游戏功能

    使用Python Tkinter实现剪刀石头布小游戏功能

    这篇文章主要介绍了使用Python Tkinter实现剪刀石头布小游戏功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • 小众实用的Python 爬虫库RoboBrowser

    小众实用的Python 爬虫库RoboBrowser

    这篇文章主要介绍了Python 爬虫库RoboBrowser的使用简介,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-03-03
  • python tkinter GUI绘制,以及点击更新显示图片代码

    python tkinter GUI绘制,以及点击更新显示图片代码

    这篇文章主要介绍了python tkinter GUI绘制,以及点击更新显示图片代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03

最新评论