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!

推薦閱讀: