再見HTML ! 用純Python就能寫一個漂亮的網頁
大家好,今天給大家帶來一個炫酷的神器!
我們在寫一個網站或者一個網頁界面的時候,需要學習很多東西,對小白來說很困難!比如我要做一個簡單的網頁交互:
- 要懂后端,比如Python里面的Django或者Flask,或者是Java里面的SpringBoot
- 要懂前端,現在都叫大前端了(因為很復雜),比如前端的框架Vue/React, 然后頁面的美化框架Bootstrap ,還有html ,csss 和Javascript 三駕馬車.
天啊,聽聽頭都大呢!其實我就給老板做一個簡單的交互的頁面,而且我只會Python ,有沒有很簡單的辦法可以做到呢。
在Github上逛的時候,找到一個非常酷的神器,名字叫remi ,目前收獲了2300個贊。
star并不是很多,但是這個庫可是選入2018年的十大明星庫,號稱是一個獨立的GUI庫,而且最牛逼的就是這個庫竟然小于 100K,是否很神奇呢,我們一起來體驗看一下特性:
- 跟其他GUI庫區別? Kivy,PyQT和PyGObject都需要主機操作系統的本機代碼,這意味著安裝或編譯大型依賴項。Remi只需要一個Web瀏覽器即可顯示您的GUI。
- 我需要懂HTML嗎? 不,只需要使用Python進行編碼。
- 它是開源的嗎? 當然!Remi是根據Apache許可發布的。開源,免費!
- 我需要某種網絡服務器嗎? 不,自帶網絡服務器。
1. 安裝
如何安裝呢,因為是Python 庫,直接用pip 即可
- pip install remi
如果是沒有網絡的,或者服務器跟外網不通的,可以離線安裝。下載這個包,然后用install 安裝
- python setup.py install
2 .快速體驗
我們來快速看一下,這個簡單的Hello world網頁。
這里面包含了一個 2個元素:
- 文本Hello world ;
- 一個Press me的按鈕;
點擊這個按鈕還會改變Hello world的文本內容,看點一下就變成了Button pressed.
上面這個簡單的效果,其實只用了20來行Python代碼,都是原生的Python代碼,沒有用一行HTML .
我們來看一下源碼:
整個的代碼的結構層次還很清晰的:
- 首先聲明一個MyApp類,這個類會繼承母框架App里面的功能,可以認為是一個網頁畫布;
- 然后在這個畫布里面有3個函數:
init主要是做類的初始化工作;
main主要對這個畫布布局進行設計,包含一個文本和一個按鈕。
on_button_pressed主要是控件的相應,點擊觸發函數
- 最后是start來啟動這個類,就會生成一個本地的網站鏈接
3 .更多復雜的網頁元素
看完上面的設計是不是就覺得跟Python里面大名鼎鼎的tk庫很相似啊,上面的只是開胃菜,這個remi還能提供更復雜的gui界面元素。
上面的是一個完整的demo頁面,基本上常見的控件元素的都包含了,比如有菜單欄,文本,按鈕,單選框,進度欄,下拉框,表格,彈出框,按鈕選取文件路徑,文件樹形結構,日期等幾十種控件。
有了這個神器,是不是可以告別Python里面的tk庫,也可以省去學習HTML的時間,還等啥,趕緊下載嘗鮮一下吧。