1、豆瓣读书v2API访问小程序最初写这个小程序是因为有一门课要求我们写一个豆瓣 api访问的小应用程序,要求如下:1. 访问豆瓣网站开发者页面,了解豆瓣 V2 API的内容2.学习JSON格式,了解JSON格式的标准;利用你熟悉的语言 (Python/Java等),学习解析JSON格式的数据3.学习HTTP协议,了解HTTP协议的标准;利用你熟悉的语言 (Python/Java等),学习如何完成一个HTTP请求4,学习WxPython开发工具,编写 GUI程序;或其它你熟悉的语言5.了解Git源代码管理工具;学习使用 GitHub网站提供的代码托管服务管理你的源代码6.运行效果如图:书名作者IS
2、BN价格书页瑚社图书简介 上一本或西薄记。的艺术虚构正是建立在佶魂芝术经验和这种社会的宗教性观念 和凤习的基础N上的,但它又以作者期定了传统目求经蛉防形成的芝术的 独创住批判了社会的京教性观念,或更正琥地偏,和社会的宗教性观念开 了玩笑,进行了制弄。这是这部演曾超人间故事的神度小说最宪出,最优 异的品房,也是它的艺术侑值和魅力的最根本的所在。戏西游记#的主旨就是在于政治批判,郡就和小说的形象和髓:不符了十 射现买政治的M刺顶多只是这部神魔小讽的圈帝性的内容,是信手钻来之 望,是问喻世态人情中的劳笔成藤筋一部小说如果不包含丰富的、擎云的 、在众条棱面上映射出众形意象的内词,就不成埴询多碧多来的有
3、生命力 的艺术品,不会方古长霸。开发环境:WxPython+python2.7.3以下附上python版本的源码:Appi.py #!/usr/bin/env python#Boa:App:BoaApp import wximport Framel modules =Frame1: 1, Main frame of Application, uFramel.pyclass BoaApp(wx.App):def OnInit(self):self.main = Frame1.create(None)self.main.Show()self.SetTopWindow(self.main) retu
4、rn Truedef main():application = BoaApp(0)application.MainLoop()if _name_ = _main_:main()Frame1.py#Boa:Frame:Frame1import wximport urllib2,jsonimport wx.richtextdef ConnectionGetDataApi(url):#return data from apires=urllib2.urlopen(url)#print type(res)result=res.read()#print type(result)print resultj
5、son_result=json.loads(result)#print type(json_result)return json_resultdef ConnectionGetImage(image_url,image_id):#Dpwnload images from internet image_addr=image_url#the address of an image#print image_urlres_image=urllib2.urlopen(image_addr)result_image=res_image.read()f=file(image_id+.jpg,wb)f.wri
6、te(result_image) f.close() return Nonedef SetValue(bookInfo,self):#set valueimage_id=bookInfoidimage_addr=bookInfoimagebook_id=bookInfoidbook_title=bookInfotitlebook_author=bookInfoauthorbook_price=bookInfopricebook_pages=bookInfopages book_publisher=bookInfopublisher book_summary=bookInfosummaryboo
7、k_isbn10=book_isbn13=book_isbn=try:book_isbn10=bookInfoisbn10except:print isbn10 excepttry:book_isbn13=bookInfoisbn13except:print isbn13 exceptif(book_isbn10=):book_isbn=book_isbn13elif(book_isbn13=):book_isbn=book_isbn10else:book_isbn=book_isbn10+,+book_isbn13#get last isbnself.textCtrl1.SetV alue(
8、book_id)#set book idself.textCtrl2.SetV alue(book_title)#set book titleself.textCtrl3.SetV alue(book_isbn)#set book isbnself.textCtrl4.SetEditable(True)self.textCtrl4.SetV alue(book_title)self.textCtrl4.SetEditable(False)self.textCtrl6.SetEditable(True) self.textCtrl6.SetV alue(book_isbn) self.textC
9、trl6.SetEditable(False)self.textCtrl7.SetEditable(True) self.textCtrl7.SetV alue(book_price) self.textCtrl7.SetEditable(False)self.textCtrl8.SetEditable(True) self.textCtrl8.SetV alue(book_pages) self.textCtrl8.SetEditable(False)self.textCtrl9.SetEditable(True)self.textCtrl9.SetV alue(book_publisher
10、)self.textCtrl9.SetEditable(False)self.richTextCtrl1.SetEditable(True)self.richTextCtrl1.SetValue(book_summary)self.richTextCtrl1.SetEditable(False)length=len(book_author)#get author#print lengthif(length=0):author=else:author=book_authorlen(book_author)-lengthwhile length=1:if(length=1):length=leng
11、th-1else :author=author+,+book_authorlen(book_author)-length+1length=length-1self.textCtrl5.SetEditable(True)self.textCtrl5.SetV alue(author)#set authorself.textCtrl5.SetEditable(False)try:ConnectionGetImage(image_addr,image_id)#get image except:print failed to download image!if(image_addr=jpg=wx.Nu
12、l l Bitmapelse:jpg = wx.Image(image_id+.jpg, wx.BITMAP_TYPE_JPEG).ConvertToBitmap()self.staticBitmapl.SetBitmap(wx.NullBitmap)self.staticBitmap1.SetBitmap(jpg)#set imageself.staticText8.SetLabel(+str(self.value_current+1)+/+str(self.value_end+1) def create(parent):return Frame1(parent)wxID_FRAME1, w
13、xID_FRAME1BUTTON1, wxID_FRAME1BUTTON2,wxID_FRAME1BUTTON3,wxID_FRAME1BUTTON4, wxID_FRAME1BUTTON5, wxID_FRAME1PANEL1,wxID_FRAME1RICHTEXTCTRL1, wxID_FRAME1STATICBITMAP1,wxID_FRAME1STA TICTEXT1,wxID_FRAME1STATICTEXT2, wxID_FRAME1STA TICTEXT3,wxID_FRAME1STA TICTEXT4,wxID_FRAME1STATICTEXT5, wxID_FRAME1STA
14、 TICTEXT6,wxID_FRAME1STA TICTEXT7,wxID_FRAME1STATICTEXT8, wxID_FRAME1STA TICTEXT9,wxID_FRAME1TEXTCTRL1,wxID_FRAME1TEXTCTRL2, wxID_FRAME1TEXTCTRL3, wxID_FRAME1TEXTCTRL4,wxID_FRAME1TEXTCTRL5, wxID_FRAME1TEXTCTRL6, wxID_FRAME1TEXTCTRL7,wxID_FRAME1TEXTCTRL8, wxID_FRAME1TEXTCTRL9,=wx.NewId() for _init_ct
15、rls in range(27) class Frame1(wx.Frame):def _init_ctrls(self, prnt):# generated method, dont editwx.Frame._init_(self, id=wxID_FRAME1, name=, parent=prnt, pos=wx.Point(439, 121), size=wx.Size(416, 538), style=wx.DEFAULT_FRAME_STYLE, title=uu8c46u74e3u67e5u8be2)self.SetClientSize(wx.Size(400, 500)sel
16、f.SetMaxSize(wx.Size(416, 538)self.SetMinSize(wx.Size(416, 538)self.panel1 = wx.Panel(id=wxID_FRAME1PANEL1, name=panel1, parent=self, pos=wx.Point(0, 0), size=wx.Size(400, 500), style=wx.TAB_TRA VERSAL)self.textCtrl1 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL1, name=textCtrl1, parent=self.panel1, pos=wx.P
17、oint(16, 32), size=wx.Size(100, 22), style=0, value=u1220562)self.textCtrl2 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL2, name=textCtrl2, parent=self.panel1, pos=wx.Point(144, 32), size=wx.Size(100, 22), style=0, Value=uu6ee1u6708u4e4bu591cu767du9cb8u73b0)self.textCtrl3 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL
18、3, name=textCtrl3, parent=self.panel1, pos=wx.Point(280, 32), size=wx.Size(100, 22), style=0, value=u9787543632608)self.button1 = wx.Button(id=wxID_FRAME1BUTTON1, label=uu56feu4e66IDu67e5u8be2, name=button1, parent=self.panel1, pos=wx.Point(32, 64), size=wx.Size(80, 24), style=0)self.button1.Bind(wx
19、.EVT_BUTTON, self.OnButton1Button, id=wxID_FRAME1BUTTON1)self.button2 = wx.Button(id=wxID_FRAME1BUTTON2, label=uu5173u952eu5b57u540du67e5u8be2, name=button2, parent=self.panel1, pos=wx.Point(152, 64), size=wx.Size(80, 24), style=0)self.button2.Bind(wx.EVT_BUTTON, self.OnButton2Button, id=wxID_FRAME1
20、BUTTON2)self.button3 = wx.Button(id=wxID_FRAME1BUTTON3, label=uu56feu4e66ISBNu67e5u8be2, name=button3, parent=self.panel1, pos=wx.Point(288, 64), size=wx.Size(80, 24), style=0)self.button3.Bind(wx.EVT_BUTTON, self.OnButton3Button, id=wxID_FRAME1BUTTON3)self.staticText1 = wx.StaticText(id=wxID_FRAME1
21、STATICTEXT1, label=uu4e66 u540d, name=staticText1, parent=self.panel1, pos=wx.Point(176, 112), size=wx.Size(28, 14), style=0)self.staticText2 = wx.StaticText(id=wxID_FRAME1STATICTEXT2, label=uu4f5c u8005, name=staticText2, parent=self.panel1, pos=wx.Point(176, 144), size=wx.Size(28, 14), style=0)sel
22、f.staticText3 = wx.StaticText(id=wxID_FRAME1STATICTEXT3, label=uISBN, name=staticText3, parent=self.panel1, pos=wx.Point(176, 176), size=wx.Size(26, 14), style=0)self.staticText4 = wx.StaticText(id=wxID_FRAME1STATICTEXT4, label=uu4ef7 u683c, name=staticText4, parent=self.panel1, pos=wx.Point(176, 20
23、8), size=wx.Size(28, 14), style=0)self.staticText5 = wx.StaticText(id=wxID_FRAME1STATICTEXT5, label=uu4e66 u9875, name=staticText5, parent=self.panel1, pos=wx.Point(176, 240), size=wx.Size(28, 14), style=0) self.staticText6 = wx.StaticText(id=wxID_FRAME1STATICTEXT6, label=uu51fau7248u793e, name=stat
24、icText6,parent=self.panel1, pos=wx.Point(176, 272), size=wx.Size(36, 14), style=0)self.richTextCtrl1 = wx.richtext.RichTextCtrl(id=wxID_FRAME1RICHTEXTCTRL1, parent=self.panel1, pos=wx.Point(0, 336), size=wx.Size(400, 160), style=wx.richtext.RE_MULTILINE,Value=uu90a3u4e00u5e74uff0cu662fu542cu83abu624
25、eu7279u3001u9493u9c88u9c7cu 548cu5bb6u5eadu7834u88c2u7684u4e00u5e74u3002u8bf4u5230u5bb6u5eadu7834u88 c2uff0cu6bcdu4eb2u602au81eau5df1u5f53u521du6ca1u6709u627eu5230u597du7537u u4f4fu4e86u773cuff0cu5931u5e38u7684u662fu6bcdu4eb2uff0cu4f46u51fau95eeu9898 u7684u662fu7236u4eb2u2026u2026u3002)self.richText
26、Ctrl1.SetLabel(urichText)self.richTextCtrl1.SetEditable(False)self.textCtrl4 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL4, name=textCtrl4, parent=self.panel1, pos=wx.Point(216, 112), size=wx.Size(168, 22), style=0, Value=uu6ee1u6708u4e4bu591cu767du9cb8u73b0)self.textCtrl4.SetEditable(False)self.textCtrl5 =
27、 wx.TextCtrl(id=wxID_FRAME1TEXTCTRL5, name=textCtrl5, parent=self.panel1, pos=wx.Point(216, 144), size=wx.Size(168, 22), style=0, value=uu65e5 u7247u5c71u606du4e00)self.textCtrl5.SetEditable(False)self.textCtrl6 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL6, name=textCtrl6, parent=self.panel1, pos=wx.Point(
28、216, 176), size=wx.Size(168, 22), style=0, value=u9787543632608)self.textCtrl6.SetEditable(False)self.textCtrl7 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL7, name=textCtrl7, parent=self.panel1, pos=wx.Point(216, 208), size=wx.Size(168, 22), style=0, value=u15.00u5143)self.textCtrl7.SetEditable(False)self.t
29、extCtrl8 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL8, name=textCtrl8, parent=self.panel1, pos=wx.Point(216, 240), size=wx.Size(168, 22), style=0, value=u180)self.textCtrl8.SetEditable(False)self.textCtrl9 = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL9, name=textCtrl9, parent=self.panel1, pos=wx.Point(216, 272), si
30、ze=wx.Size(168, 22), style=0, value=uu9752u5c9bu51fau7248u793e)self.textCtrl9.SetEditable(False)self.staticText7 = wx.StaticText(id=wxID_FRAME1STA TICTEXT7, label=uu56fe u4e66 u7b80 u4ecb, name=staticText7, parent=self.panel1, pos=wx.Point(8, 312), size=wx.Size(72, 14), style=0)self.staticBitmap1 = wx.StaticBitmap(bitmap=wx.Nu ll Bitmap, id=wxID_FRAME1STATICBITMAP1, name=staticBitmap1, parent=self.panel1, pos=wx.Point(8, 104), size=wx.Size(144, 184), style=0)self.staticBitmap1.SetMaxSize(wx.Size(144, 184)self.button4 = wx.Button(id=wxID_FRAME1BUTTON4,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1