Python PyWebIO實現網頁版數據查詢器
界面的制作一直是 Python 的痛!使用 Python 制作桌面端界面是非常痛苦的過程(又難學又難看)。不過,Python 已經出現瞭幾個基於web前端的庫,他們的基本機制大同小異,如果對 界面操作性沒有太大要求,那麼這些庫就比較適合你 。
這個系列基於 pywebio 的一系列實戰應用,讓我們從實戰中學習這個庫的使用!
本節最終效果動圖:
- 選擇 excel 文件
- 輸出文件第一個工作表的數據(DataFrame)
安裝庫:
pip install -U pywebio
輸出文本
先輸出一段內容試試效果:
import pywebio import pywebio.output as output def main(): output.put_html('表格顯示程序') if __name__=='__main__': pywebio.start_server(main, port=8080, debug=True, cdn=False,auto_open_webbrowser=True)
行1,2:導入需要的東西,其中 pywebio.output 是用來輸出內容相關操作
行4:定義一個函數,名字隨意
行5:put_html 這個函數就是行2導入的 output 模塊的操作,用來輸出 html 內容
行9:啟動服務。這大部分是樣板代碼(就是每次都一樣的)。特別重要的是第一個參數,就是我們定義的函數名字(註意並沒有執行,隻是傳入)
執行這段腳本,如無意外你的瀏覽器就啟動瞭一頁,地址是 http://localhost:8080 :
如果你不熟悉 html 的各種標簽,你可能連基本的排版都做不到。
這還好,pywebio 還支持 markdown:
def main(): output.put_markdown('# 表格顯示程序') output.put_markdown('功能如下:') output.put_markdown(""" - 選擇文件 - 自動加載輸出表格一部分內容 """)
輸入操作
隻有輸出操作是滿足不瞭需求,界面上很多輸入操作。
選擇文件就是一種輸入操作(用戶輸入內容到界面上):
import pywebio import pywebio.output as output import pywebio.input as input def main(): output.put_markdown('# 表格顯示程序') output.put_markdown('功能如下:') output.put_markdown(""" - 選擇文件 - 自動加載輸出表格一部分內容 """) file = input.file_upload('選擇一個excel文件','.xlsx')
行3:導入輸入操作模塊
行13:使用 file_upload 用來讓用戶選擇文件上傳。第一個參數是提示內容,第二個參數是限定文件後綴名
用戶選擇的文件將會賦值到變量 file
看看效果:
點擊右邊的”Browse”按鈕,即可從彈窗中選擇excel文件。
點擊提交按鈕後,之前的代碼就會繼續往下執行。
有瞭文件內容,我們用 pandas 讀取:
import pywebio import pywebio.output as output import pywebio.input as input import pandas as pd def main(): output.put_markdown('# 表格顯示程序') output.put_markdown('功能如下:') output.put_markdown(""" - 選擇文件 - 自動加載輸出表格一部分內容 """) file = input.file_upload('選擇一個excel文件','.xlsx') df = pd.read_excel(file['content']) output.put_html(df.head(10).to_html())
行15:通過 file[‘content’] 獲取文件內容。
行16:df.to html() 就能生成完整的表格 html ,然後用 put html 輸出即可
看看效果:
重點
最終的代碼如下:
import pywebio import pywebio.output as output import pywebio.input as input import pandas as pd def main(): output.put_markdown('# 表格顯示程序') output.put_markdown('功能如下:') output.put_markdown(""" - 選擇文件 - 自動加載輸出表格一部分內容 """) file = input.file_upload('選擇一個excel文件','.xlsx') df = pd.read_excel(file['content']) output.put_html(df.head(10).to_html())
所有的input操作代碼,都會等待界面操作完畢才會往下執行。例如行14 file_upload 會一直卡住,直到界面上點擊 “提交” 按鈕
按照上面的流程,這個函數將會執行完畢。如果希望重新執行一次,隻需要刷新一下瀏覽器的頁面
隻是加載數據太沒趣瞭?下一節將進一步改進,加載數據後可以對數據查詢
到此這篇關於Python PyWebIO實現網頁版數據查詢器的文章就介紹到這瞭,更多相關Python PyWebIO數據查詢器內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 使用Python快速打開一個百萬行級別的超大Excel文件的方法
- 利用Python的pandas數據處理包將寬表變成窄表
- Python調用百度AI實現圖片上表格識別功能
- python數據分析之文件讀取詳解
- python利用pandas分析學生期末成績實例代碼