當前位置:
首頁 > 知識 > 用wxPython創建GUI應用程序展示NASA圖片(第一部分)

用wxPython創建GUI應用程序展示NASA圖片(第一部分)

在成長過程中,我時常認為探索宇宙空間是一件令人興奮的事情,幻想那些未知的事物是相當有趣的。我也喜歡瀏覽異世界的照片或者探討廣袤的空間。可是這些和Python有什麼關係呢?當然有關啦,美國國家航空航天局(NASA)提供了一套基於web的API,可以用於查詢他們的圖像庫。

您可以在他們的網站閱讀相關信息。

NASA官網建議先獲取API密鑰。當訪問網站時,需要填寫一個簡短的表格。

從技術層面上來說,您無需API密鑰即可請求NASA服務。然而,對於免密鑰的訪問,存在速率限制的問題。當然,即使使用密鑰進行訪問,也會存在每小時至多1000次請求的默認上限值。如果超過限制,將暫時阻止發送請求。可以聯繫NASA提高上限值。

有趣的是,文檔並未說明免密鑰情況下的請求次數上限。

關於域名訪問方面,NASA的圖像API文檔和普通API文檔之間存在出入,導致使用時令人困惑。

比如,普通API文檔上的URL如下:

  • https://api.nasa.gov/planetary/apod?api_key=API_KEY_GOES_HERE

但是,圖像API文檔給出的URL有所不同:

  • https://images-api.nasa.gov

對於本教程而言,將採用後者。

用wxPython創建GUI應用程序展示NASA圖片(第一部分)

NASA API的使用

當開始使用不太熟悉的API時,最好先閱讀其官方文檔。另外可以在網上搜索是否存在基於該API的Python包。不過似乎沒有NASA庫的Python版本,所以需要自己實現。

開始使用前,請閱讀NASA的圖像API文檔。

這個文檔不是很長,無需花費大量時間閱讀,所以請盡量瀏覽一遍。

接下來將嘗試使用該API。

如下是訪問API的部分代碼:

用wxPython創建GUI應用程序展示NASA圖片(第一部分)

如果在調試器中運行此代碼,則可以列印返回的JSON。

如下是返回的部分內容:

用wxPython創建GUI應用程序展示NASA圖片(第一部分)

用wxPython創建GUI應用程序展示NASA圖片(第一部分)

既然已經了解了JSON的格式,可以嘗試解析它。

可以在Python腳本中加入如下代碼:

用wxPython創建GUI應用程序展示NASA圖片(第一部分)

由此可以獲取JSON的第一個項。然後可以解析出nasa_id,用於獲取與此特定結果關聯的所有圖像。接下來可以將nasa_id添加到新URL並發出請求。

請求結果如下:

用wxPython創建GUI應用程序展示NASA圖片(第一部分)

Python代碼的最後兩行用於從JSON中提取URL。至此我們獲取了需要展示的全部數據。

用戶界面的設計

您可以通過多種不同的方式設計圖像下載應用程序。其中原型模式是最簡單且快速的。它的優勢在於在實現所有基本需求的基礎上,可以結合自己掌握的知識增強原型或者進行創新。

如下是一個嘗試創建的模型:

用wxPython創建GUI應用程序展示NASA圖片(第一部分)

如您所見,應用程序需要具有如下功能:

  • 搜索欄
  • 保存搜索結果的部件
  • 選擇某個結果時的圖像顯示方式
  • 圖像下載功能

接下來讓我們一起學習如何創建這個用戶界面吧!


英文原文:https://www.blog.pythonlibrary.org/2019/04/18/creating-a-gui-application-for-nasas-api-with-wxpython/ 譯者:我是昵稱耶~

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python部落 的精彩文章:

導致機器學習項目失敗的7個原因
Pyright:微軟提供的Python靜態類型檢查器

TAG:Python部落 |