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

ISBN查詢工具通常用于圖書管理、圖書銷售、圖書收集和閱讀等場(chǎng)景。以下是一些具體的應(yīng)用場(chǎng)景:
圖書管理系統(tǒng):ISBN查詢工具可以幫助圖書管理員快速準(zhǔn)確地查詢圖書信息,包括書名、作者、出版社、出版日期、價(jià)格等,從而方便圖書分類、歸檔和借閱。
圖書銷售:ISBN查詢工具可以幫助書店、圖書網(wǎng)站等銷售渠道快速準(zhǔn)確地查詢圖書信息,方便顧客瀏覽和購買圖書。
圖書收集:ISBN查詢工具可以幫助書友快速找到自己需要的圖書,并記錄下來,方便后續(xù)購買或借閱。
閱讀:ISBN查詢工具可以幫助讀者快速查詢圖書信息,包括書名、作者、出版社、出版日期、價(jià)格等,從而幫助讀者更好地了解書籍內(nèi)容,選擇適合自己的讀物。
2.實(shí)例分析
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)建文本框和標(biāo)簽
self.isbn_label = wx.StaticText(panel, label='輸入書號(hào):')
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='查詢')
# 設(shè)置文本框和按鈕的布局
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)
# 綁定事件處理函數(shù)
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.總結(jié)
這是一個(gè)使用 wxPython 和 Open Library API 查詢 ISBN 書號(hào)對(duì)應(yīng)書名的小程序。程序界面包含一個(gè)輸入框和一個(gè)查詢按鈕,用戶可以在輸入框內(nèi)輸入 ISBN 書號(hào),點(diǎn)擊查詢按鈕后會(huì)自動(dòng)查詢對(duì)應(yīng)書名并顯示在文本框內(nèi)。該程序的主要實(shí)現(xiàn)代碼在 BookInfoFrame 類的構(gòu)造函數(shù)中,其中綁定了輸入框回車和查詢按鈕的事件處理函數(shù),通過調(diào)用 Open Library API 查詢對(duì)應(yīng) ISBN 書號(hào)的書名并顯示在文本框中。
到此這篇關(guān)于基于Python編寫一個(gè)ISBN查詢工具的文章就介紹到這了,更多相關(guān)Python ISBN查詢工具內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python各層級(jí)目錄下import方法代碼實(shí)例
這篇文章主要介紹了python各層級(jí)目錄下import方法代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01
Python全面解析json數(shù)據(jù)并保存為csv文件
這篇文章主要介紹了Python全面解析json數(shù)據(jù)并保存為csv文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
Python響應(yīng)對(duì)象text屬性亂碼解決方案
這篇文章主要介紹了Python響應(yīng)對(duì)象text屬性亂碼解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
Python中TypeError:unhashable?type:'dict'錯(cuò)誤的解決辦法
這篇文章主要給大家介紹了關(guān)于Python中TypeError:unhashable?type:'dict'錯(cuò)誤的解決辦法,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-04-04
Python實(shí)現(xiàn)二叉排序樹與平衡二叉樹的示例代碼
樹表查詢即借助具有特殊性質(zhì)的樹數(shù)據(jù)結(jié)構(gòu)進(jìn)行關(guān)鍵字查找,本文所涉及到的特殊結(jié)構(gòu)性質(zhì)的樹包括:二叉排序樹、平衡二叉樹。文中詳細(xì)介紹了二者的實(shí)現(xiàn)代碼,需要的可以參考一下2022-04-04
使用Django搭建一個(gè)基金模擬交易系統(tǒng)教程
今天小編就為大家分享一篇使用Django搭建一個(gè)基金模擬交易系統(tǒng)教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11
Python itertools庫高效迭代藝術(shù)實(shí)例探索
Python 中的?itertools?庫為迭代器操作提供了豐富的工具集,使得處理迭代對(duì)象變得更加高效和靈活,本篇文章將深入討itertools庫的常用方法,通過詳實(shí)的示例代碼演示其在解決各種問題中的應(yīng)用2024-01-01

