網(wǎng)頁制作成品網(wǎng)站寧波百度推廣優(yōu)化
jxWebUI是為python程序員開發(fā)的簡單易用的WebUI庫,通過簡單的文本定義即可定義各種web界面發(fā)布使用。適合不追求炫酷的界面,而是側(cè)重快速實現(xiàn)功能的python程序員。
jxWebUI的使用非常簡單,主要包括幾個步驟:
1、導(dǎo)入依賴
from jxWebUI import jxWebLogger, jxWebServer, jxWebCapa, jxWebGetUser, jxWebSQLGetDBConnection
2、創(chuàng)建一個capa
capa = jxWebCapa('test.first_page')
capa就是一個橋【可以理解為一個功能模塊】,把web界面和python代碼銜接起來。這里定義了一個名為【test.first_page】的capa。對于名字,capa本身并無特殊要求,這里是為了便于代碼組織,采用了點分方式。
3、給capa定義一個界面
@capa.page
def test_web(ci, db, ctx): ''' table table1 width=900:rowtext text1 text='文本框1',bind=text1,width=200input input1 bind=input1,width=200;'''jxWebLogger.info(f'testUI_tms::test_web') ci.setOutput('input1', '測試輸出3')
這就定義了一個【test_web】的頁面:
4、定義一個打開這個界面的快捷欄菜單
capa.shortCutTree_add_item('測試', '測試1', 'test_web')
這會在左側(cè)的快捷工具欄中出現(xiàn)一個二級目錄:測試->測試1
點擊【測試1】就會顯示上面的【test_web】頁面。
5、定義一個獲取登錄用戶信息的函數(shù)并送給jxWebUI
class User: def __init__(self, name): self._name = name self._abbr = name self._roles = [ ] def name(self): return self._name def abbr(self): return self._abbr def roles(self): return self._roles def get_user(user, pwd): return User(user)
jxWebGetUser(get_user)
jxWebUI必須登錄才可以使用,所以需要通過jxWebGetUser設(shè)置一個用戶登錄驗證與用戶信息獲取的函數(shù)。因為是示例,所以這里就是簡單把用戶登錄時輸入的登錄名直接封裝成了一個User對象返回給jxWebUI,并未做驗證。
如果需要驗證,則修改get_user函數(shù),對登錄名和密碼進行校驗即可。返回None則代表登錄失敗,用戶將無法登入。
返回的是用戶自定義的一個對象,但必須要有name、abbr、roles三個函數(shù),否則會執(zhí)行失敗,無法返回左側(cè)的快捷欄,則用戶見到的就會是一個空白頁面。
6、啟動web服務(wù)
jxWebServer.start(port=10068)
啟動后,打開: http://127.0.0.1:10068/tms.html# 會彈出一個登錄窗口,因為我們送入的get_user并未做用戶的登錄驗證,所以隨便輸入用戶名和密碼就會登入。
因為jxWebUI需要做一點初始化的工作,所以可能要等兩三秒中,就會在左側(cè)的快捷欄,出現(xiàn)【測試->測試1】。點擊測試1就會彈出test_web界面。
需要注意的是,和上面的截圖不同,輸入框中會出現(xiàn):【測試輸出3】。這是因為test_web函數(shù)不僅僅只是定義一個頁面,其函數(shù)體中的代碼:
jxWebLogger.info(f'testUI_tms::test_web')
ci.setOutput('input1', '測試輸出3')
也會在頁面打開時得到執(zhí)行。這兩條代碼中:
jxWebLogger.info(f'testUI_tms::test_web')
會將字符串【testUI_tms::test_web】以info級別記入jxWebLogger。其對應(yīng)的日志文件位于執(zhí)行程序所在目錄的子目錄【./logs】中的【rolling.log】。
ci.setOutput('input1', '測試輸出3')
是將一個字符串【測試輸出3】輸出到web界面的【input1】中。
完整的代碼是:
from jxWebUI import jxWebLogger, jxWebServer, jxWebCapa, jxWebGetUser, jxWebSQLGetDBConnectioncapa = jxWebCapa('test.first_page')@capa.page
def test_web(ci, db, ctx): ''' table table1 width=900:rowtext text1 text='文本框1',bind=text1,width=200input input1 bind=input1,width=200;'''jxWebLogger.info(f'testUI_tms::test_web') ci.setOutput('input1', '測試輸出3')capa.shortCutTree_add_item('測試', '測試1', 'test_web')class User: def __init__(self, name): self._name = name self._abbr = name self._roles = [ ] def name(self): return self._name def abbr(self): return self._abbr def roles(self): return self._roles def get_user(user, pwd): return User(user)
jxWebGetUser(get_user)jxWebServer.start(port=10068)
將上述代碼保存為testUI_tms.py,然后在命令行執(zhí)行:
python3 testUI_tms.py
然后在瀏覽器中打開: http://127.0.0.1:10068/tms.html# 進行查看。
jxWebUI編程指南
請在python解釋器中執(zhí)行:
>>> from jxWebUI import startJxWebUIManualServer
>>> startJxWebUIManualServer(port=10068, web_def=True)
然后在瀏覽器中打開: http://127.0.0.1:10068/tms.html# 隨便輸入用戶名、密碼登錄后,就可以查看到編程手冊的目錄:
整體說明菜單下是jxWebUI編程的總體概念和API說明等,web組件說明菜單下則詳細介紹了已開放的web組件的說明和屬性等。點擊這二者的章節(jié)會以markdown的形式提供相應(yīng)的說明:
web組件定義菜單下則提供了一個jxWebUI自舉的web組件定義和展示功能:
jxWebUI在啟動后,會在執(zhí)行程序所在的目錄下自動創(chuàng)建logs子目錄,并在其中創(chuàng)建兩個日志文件:
- rolling.log:是jxWebUI的運行日志,包括用戶的操作等
- web.log:jxWebUI的web服務(wù)所依賴的tornado的日志
這兩種日志都是30個日志文件、每個日志文件500M進行循環(huán),所以如長期運行需注意硬盤空間的使用情況。
安裝jxWebUI
pip install jxWebUI