基于Python編寫一個ISBN查詢工具
1.引言
效果圖:

ISBN查詢工具通常用于圖書管理、圖書銷售、圖書收集和閱讀等場景。以下是一些具體的應用場景:
圖書管理系統(tǒng):ISBN查詢工具可以幫助圖書管理員快速準確地查詢圖書信息,包括書名、作者、出版社、出版日期、價格等,從而方便圖書分類、歸檔和借閱。
圖書銷售:ISBN查詢工具可以幫助書店、圖書網站等銷售渠道快速準確地查詢圖書信息,方便顧客瀏覽和購買圖書。
圖書收集:ISBN查詢工具可以幫助書友快速找到自己需要的圖書,并記錄下來,方便后續(xù)購買或借閱。
閱讀: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)
# 創(chuàng)建文本框和標簽
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)
# 創(chuàng)建查詢按鈕
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查詢工具內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python中TypeError:unhashable?type:'dict'錯誤的解決辦法
這篇文章主要給大家介紹了關于Python中TypeError:unhashable?type:'dict'錯誤的解決辦法,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2023-04-04

