Flask 是一個輕量級的Web框架,主要用於建立基於Python的Web應用和API。它可搭建webhook本地服務器,同時提供靈活的URL路由和HTTP請求處理方式,允許開發者快速啟動並測試應用功能。由於其結構簡單,開發者常用其作為建立和測試 MVP(最小可行性產品),同時其也非常適合新手作為入門學習Web開發的工具之一。
本文利用樹莓派4B搭建Flask和Ngrok來實現簡易的LINE Bot功能,其中Ngrok的安裝和建置可參考此篇文章,本篇主要著重在Flask環境建置和程式碼的部分。
Learn & Share由H-Y Chou 和 Books and Pencil 共筆,藉由這個平台紀錄著實用工具和好書閱讀,同時也分享著教育學習與思維概念等等多元化的主題。
Flask 是一個輕量級的Web框架,主要用於建立基於Python的Web應用和API。它可搭建webhook本地服務器,同時提供靈活的URL路由和HTTP請求處理方式,允許開發者快速啟動並測試應用功能。由於其結構簡單,開發者常用其作為建立和測試 MVP(最小可行性產品),同時其也非常適合新手作為入門學習Web開發的工具之一。
本文利用樹莓派4B搭建Flask和Ngrok來實現簡易的LINE Bot功能,其中Ngrok的安裝和建置可參考此篇文章,本篇主要著重在Flask環境建置和程式碼的部分。
延續<[Python]如何在Ubuntu中建置python venv虛擬環境,並安裝TensorFlow和OpenCV函式庫?>文章,當建置 TensorFlow (2.10.0) 和 OpenCV (4.9.0) 的 Python 虛擬環境後,接續進一步安裝 YOLOv5 的相關套件,並在 Raspberry Pi 4B 上完成物件辨識功能,步驟如下。
為了在樹莓派上實現物件影像辨識功能,同時不影響樹莓派原來的python運行環境,選擇建置python虛擬環境[Note1]是一個好方式,其可避免版本衝突和不同運行環境的問題。另外,一併在該虛擬環境中安裝TensorFlow[Note2]和OpenCV[Note3]等等函式庫,並確認版本是否符合需求。
建置python虛擬環境有venv, virtualenv, conda等方式,其中venv最為簡單易用,也符合此影像辨識的項目需求,建置步驟如下:
軟件測試是確認軟件質量的重要流程之一,一般藉由撰寫自動化測試程序來實現。視窗程式的自動化測試原理也很容易,其利用螢幕像素點作為定位參考,並以程式碼使滑鼠和鍵盤做動,如點擊或輸入文字等動作,使其可模擬人類操作視窗程式,最後自動化執行上千次或上萬次,以確保程式的可靠性。
這算是debug代碼的紀錄,只求此次碰過的坑,下次可以繞道而過,紀錄,也供分享。
下列兩個簡單的代碼段都會看到IndexError: list index out of range錯誤訊息,其實問題來自於data1[5]和data2[0]無法被print出來,原因是data1是一個1~5的list,而其序號是由0開始計數,即data1[0]=1....data1[4]=5,所以找不到data1[5]。以此類推,data2是一個empty list,自然連data2[0]都沒有元素。
銜接<[Python]初探爬蟲(scrapy)>的學習,在Python中,除了善用request安裝包抓取網頁資料之外,還可利用selenium安裝包模擬瀏覽器操作網頁,包含搜尋關鍵字和抓取網頁資料,得以實現機機器人流程自動化(RPA, Robotic process automation)的操作。
在現今電腦化(或稱無紙化)的辦公環境中,往往因為工作需求需將一些資料在不同辦公文件之間轉移,如若需要呈現簡報(.ppt),可能需將word的部分文字複製到ppt上;若需要分析論文中的表格數據,可能需將pdf轉換成excel。然而,若僅僅是少數文件的轉換,或許可簡單用複製和貼上的功能來處理,但若是批量轉換的工作,為了避免重複性勞力和容易出錯,藉由工具來進行批量轉換才是正確的工作方式。
關於Python,如上篇文章<[Python]初探爬蟲(scrapy)>所述,其藉由各類安裝包的導入可以開展對應程序工作。既然是藉由安裝包的導入,可想而知,一定會有查詢安裝包的指令,網路上很容易搜尋到。(OS: 其實這篇文章的主要目的是為了紀錄今日的幾個重點結論,而查看安裝包的狀態僅是其中一個結論。)
隨著互聯網時代的到來,網路已成為人類生活的資料庫,只要輸入合適的關鍵字,大部分的問題可藉由搜索找到方向。然而,以另一個角度觀察,龐大的網路資料庫也易因為巨量的資料,導致容易失焦,因此如何從資料庫篩選出期望的主題資料是一個重點工作。早有耳聞Python的爬蟲功能,藉著零碎時間看了一些視頻,同時將重點摘要如下,供日後查閱,也供各位參考。