成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

開發交互式 Web 應用,從未如此簡單

開發 開發工具
今天分享一個讓開發交互式 Web app 超級簡單的工具。不會 HTML,CSS,JAVASCRIPT 也沒事。

[[429552]]

今天分享一個讓開發交互式 Web app 超級簡單的工具。不會 HTML,CSS,JAVASCRIPT 也沒事。

交互式 Web app 非常實用,比如說做一個問卷調查頁面、一個投票系統、一個信息收集表單,上傳文件等等,因為網頁是可視化的,因此還可以作為一個沒有服務端的圖片界面應用程序而使用。

如果你有這樣的開發需求,那用 Python 真的是太簡單了。

借助于 PyWebIO(pip install pywebio),你可以分分鐘實現網頁的信息錄入,可以看下面的動圖:

上面的頁面,也就僅僅用了這 6 行代碼:

  1. from pywebio.input import * 
  2.  
  3. input("This is a simple text input"
  4. select("This is a drop down menu", ['Option1''Option2']) 
  5. checkbox("Multiple Choices!", options=["a",'b','c','d']) 
  6. radio("Select any one", options=['1''2''3']) 
  7. textarea('Text Area'rows=3, placeholder='Multiple line text input'

要讓網頁輸出想要的信息也是非常簡單,代碼如下,函數功能已經做了相關注釋,你很容易看懂:

  1. from pywebio.output import * 
  2. from pywebio import session 
  3.  
  4. # 網頁上顯示純文本 
  5. put_text("Hello friend!"
  6.  
  7. # 網頁上顯示表格 
  8. put_table([ 
  9.     ['Object''Unit'], 
  10.     ['A''55'], 
  11.     ['B''73'], 
  12. ]) 
  13.  
  14. # 網頁上顯示 MarkDown 
  15. put_markdown('~~PyWebIO~~'
  16.  
  17. # 網頁上顯示下載文件的鏈接 
  18. put_file('output_file.txt', b'You can put anything here'
  19.  
  20. # 網頁上顯示圖片 
  21. put_image(open('python_logo.png''rb').read()) 
  22.  
  23. # 網頁上顯示彈窗 
  24. popup('popup title''popup text content'
  25.  
  26. # 保持回話是打開狀態,否則頁面顯示完畢程序退出 
  27. session.hold() 

運行的效果如下:

以上,幾行代碼就實現了一個帶有輸入輸出的 Web 應用,是不是很神奇?

構建基于瀏覽器的 GUI 程序

PyWebIO 提供了一系列命令式的交互函數來在瀏覽器上獲取用戶輸入和進行輸出,將瀏覽器變成了一個“富文本終端”,可以用于構建簡單的 Web 應用或基于瀏覽器的 GUI 應用。

比如計算 BMI 指數的腳本:

  1. from pywebio import start_server 
  2. from pywebio.input import input, FLOAT 
  3. from pywebio.output import put_text 
  4.  
  5. def bmi(): 
  6.     height = input("請輸入你的身高(cm):", type=FLOAT
  7.     weight = input("請輸入你的體重(kg):", type=FLOAT
  8.  
  9.     BMI = weight / (height / 100) ** 2 
  10.  
  11.     top_status = [(14.9, '極瘦'), (18.4, '偏瘦'), 
  12.                   (22.9, '正常'), (27.5, '過重'), 
  13.                   (40.0, '肥胖'), (float('inf'), '非常肥胖')] 
  14.  
  15.     for top, status in top_status: 
  16.         if BMI <= top
  17.             put_text('你的 BMI 值: %.1f,身體狀態:%s' % (BMI, status)) 
  18.             break 
  19.  
  20. if __name__ == '__main__'
  21.     start_server(bmi, port=80) 

效果:

更多示例:

基本 demo

  • 聊天室[1]: 和當前所有在線的人聊天 (不到 90 行代碼實現)
  • Markdown 實時預覽[2]: 可以實時預覽的在線 Markdown 編輯器 (不到 40 行代碼實現)
  • 在線五子棋游戲[3]: 多人協作對戰的五子棋游戲 (不到 100 行代碼實現)
  • 輸入演示[4]: 演示 PyWebIO 輸入模塊的用法
  • 輸出演示[5]: 演示 PyWebIO 輸出模塊的用法

數據可視化 demo

PyWebIO 還支持使用第三方庫進行數據可視化

  • 使用 bokeh 進行數據可視化[6]
  • 使用 plotly 進行數據可視化[7]
  • 使用 pyecharts 創建基于 Echarts 的圖表[8]
  • 使用 pyg2plot 創建基于 G2Plot 的圖表[9]
  • 使用 cutecharts.py 創建卡通風格圖表[10]

數據可視化效果圖:

與現有框架集成

PyWebIO 還可以方便地整合進現有的 Web 服務,讓你不需要編寫 HTML 和 JS 代碼,就可以構建出具有良好可用性的應用。目前支持與 Flask、Django、Tornado、aiohttp、FastAPI 框架集成。

比如說與 Tornado 應用整合:

  1. import tornado.ioloop 
  2. import tornado.web 
  3. from pywebio.platform.tornado import webio_handler 
  4.  
  5. class MainHandler(tornado.web.RequestHandler): 
  6.     def get(self): 
  7.         self.write("Hello, world"
  8.  
  9. if __name__ == "__main__"
  10.     application = tornado.web.Application([ 
  11.         (r"/", MainHandler), 
  12.         (r"/bmi", webio_handler(bmi)),  # bmi 即為上文計算BMI指數的函數 
  13.     ]) 
  14.     application.listen(port=80, address='localhost'
  15.     tornado.ioloop.IOLoop.current().start() 

與 Django 整合:

  1. # urls.py 
  2.  
  3. from django.urls import path 
  4. from pywebio.platform.django import webio_view 
  5.  
  6. # `task_func` is PyWebIO task function 
  7. webio_view_func = webio_view(task_func) 
  8.  
  9. urlpatterns = [ 
  10.     path(r"tool", webio_view_func), 

與更多框架的整合見文檔[11]

最后

PyWebIO 使用同步而不是基于回調的方式獲取輸入,代碼編寫邏輯更自然,非聲明式布局,布局方式簡單高效,代碼侵入性小,舊腳本代碼僅需修改輸入輸出邏輯便可改造為 Web 服務,還可以整合到現有的主流 Web 框架。同時支持基于線程的執行模型和基于協程的執行模型,支持結合第三方庫實現數據可視化,更多知識請閱讀官方文檔[12]

一句話,PyWebIO 讓交互式的 Web 開發變得更加簡單,特別適合開發簡單的 GUI 程序及數據可視化。

本文轉載自微信公眾號「Python七號」,可以通過以下二維碼關注。轉載本文請聯系Python七號公眾號。

 

責任編輯:武曉燕 來源: Python七號
相關推薦

2021-10-27 16:03:43

Python編程語言代碼

2022-08-12 12:19:13

Cluster檢索集群

2022-06-13 06:33:04

瀏覽器瀏覽器插件

2024-07-25 08:58:16

GradioPython數據應用

2023-07-28 14:13:15

Streamlit開源Python庫

2020-12-18 08:00:00

Python開發Web

2025-04-03 00:10:11

DockerAI模型

2017-04-21 14:57:57

AndroidSuperTextViTextView

2024-08-02 10:30:39

StreamlitPython庫數據驅動

2011-09-01 15:54:10

app應用

2023-09-15 10:10:05

R 語言

2024-02-27 18:06:35

2020-03-17 07:41:50

ApacheKafka系統

2020-03-03 15:40:51

開發技能代碼

2023-04-10 15:08:52

Plotly Das開發Web 應用程序

2019-05-23 10:55:22

Istio灰度發布ServiceMesh

2013-06-14 10:36:00

2010-02-24 09:39:25

Python交互式

2013-09-22 16:22:21

2009-01-03 14:43:55

ibmdwPHPsMash
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩成人一区二区 | 精品久久久久久亚洲精品 | 男女视频在线看 | 成人午夜性成交 | 北条麻妃一区二区三区在线视频 | 成人在线中文字幕 | 草草网 | 一级黄色录像毛片 | 日韩在线精品视频 | 五月精品视频 | 欧洲av在线 | 日韩电影免费在线观看中文字幕 | 日韩一区二区三区视频 | 亚洲男人的天堂网站 | 欧美极品在线观看 | 精品国产欧美一区二区三区成人 | 中文字幕视频在线观看 | 欧美在线看片 | 91成人小视频 | 亚洲免费成人av | 91久久久久久 | 国产成人综合久久 | 欧美日韩精品一区 | 国产在线97| 精品成人免费一区二区在线播放 | 国产精品精品久久久久久 | 亚洲成人免费av | 免费的色网站 | 高清一区二区三区 | 欧美在线一区二区三区 | 久久久av | 欧美视频在线看 | 盗摄精品av一区二区三区 | 日韩中文字幕在线免费 | 欧美午夜一区二区三区免费大片 | 天天夜干 | 在线视频中文字幕 | 2021狠狠天天天 | www.久久久久久久久久久久 | 青青久久av北条麻妃海外网 | 国产91亚洲精品一区二区三区 |