Python PyWebIO實現網頁版資料查詢器

2022-09-21 02:06:09 字數 2848 閱讀 5711

介面的製作一直是 python 的痛!使用 python 製作桌面端介面是非常痛苦的過程(又難學又難看)。不過,python 已經出現了幾個基於web前端的庫,他們的基本機制大同小異,如果對 介面操作性沒有太大要求,那麼這些庫就比較適合你 。

這個系列基於 pywebio 的一系列實戰應用,讓我們從實戰中學習這個庫的使用!

本節最終效果**:

安裝庫:

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_wqtpjnopen_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.www.cppcns.comfile_upload('選擇乙個excel檔案','.xlsx')

行3:匯入輸入操作模組

行13:使用 file_upload 用來讓使用者選擇檔案上傳。第乙個引數是提示內容,第二個引數是限定檔案字尾名

使用者選擇的檔案將會賦值到變數 file

看看效果:

點選右邊的"browse"按鈕,即可從彈窗中選擇excel檔案。

點選提交按鈕後,之前的**就會繼續往下執行。

有了檔案內容,我們用 pandas 讀取:

import p程式設計客棧ywebio

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 會一直卡住,直到介面上點選 "提交" 按鈕

按照上面的流程,這個函式將會執行完畢。如果希望重新執行一次,只需要重新整理一下瀏覽器的頁面

只是載入資料太沒趣了?下一節將進一步改進,載入資料後可以對資料查詢

快速排序演算法實現(遞迴實現 棧實現)

基本思想 選擇乙個基準元素,比如選擇最後乙個元素,通過一趟掃瞄,將待排序列分成兩部分,一部分比基準元素小,一部分大於等於基準元素,此時基準元素在其排好序後的正確位置,又稱為軸位置,此位置的元素確定後不再參與排序,然後再用同樣的方法遞迴地排序劃分的兩部分。分析 快速排序是不穩定的排序。快速排序的時間複...

介面實現與配置實現

在實現系統功能的時候,通常會首先定義好功能的介面,在系統功能不斷被實現的過程中,慢慢的發現有些介面的實現很類似,這個時候通常會開始做一次抽象,形 成乙個共同的部分,慢慢的系統形成了乙個抽象的層次,而為了通用,通常是通過定義介面,形成乙個抽象類,抽象類中暴露出一些抽象方法供外部擴充套件實 現,逐步的積...

js分頁實現,前端實現。

主要是借鑑了網上乙個例子,自己重新加了樣式,新增了跳轉,修改了一些小地方,用於和大家一起分享,前端分頁的技巧,的資料是我已經寫好了,其實大家也可以前端渲染 然後再分頁,都是可以的。其實分頁最關鍵是這兩句 var startrow currentpage 1 pagesize 1 currentpag...