用Python编写一个ISBN查询工具,秒查图书信息

目录

1.引言:

2.正文:

3.实例分析:

4.总结:


getnameformisbn.py

1.引言:

2.正文:

ISBN查询工具通常用于图书管理、图书销售、图书收集和阅读等场景。以下是一些具体的应用场景:

  1. 图书管理系统:ISBN查询工具可以帮助图书管理员快速准确地查询图书信息,包括书名、作者、出版社、出版日期、价格等,从而方便图书分类、归档和借阅。

  2. 图书销售:ISBN查询工具可以帮助书店、图书网站等销售渠道快速准确地查询图书信息,方便顾客浏览和购买图书。

  3. 图书收集:ISBN查询工具可以帮助书友快速找到自己需要的图书,并记录下来,方便后续购买或借阅。

  4. 阅读:ISBN查询工具可以帮助读者快速查询图书信息,包括书名、作者、出版社、出版日期、价格等,从而帮助读者更好地了解书籍内容,选择适合自己的读物。

3.实例分析:

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()

4.总结:

        这是一个使用 wxPython 和 Open Library API 查询 ISBN 书号对应书名的小程序。程序界面包含一个输入框和一个查询按钮,用户可以在输入框内输入 ISBN 书号,点击查询按钮后会自动查询对应书名并显示在文本框内。该程序的主要实现代码在 BookInfoFrame 类的构造函数中,其中绑定了输入框回车和查询按钮的事件处理函数,通过调用 Open Library API 查询对应 ISBN 书号的书名并显示在文本框中。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值