当前位置: 首页 > ai >正文

jxWebUI--简单易用的webUI库

jxWebUI是为python程序员开发的简单易用的WebUI库,通过简单的文本定义即可定义各种web界面发布使用。适合不追求炫酷的界面,而是侧重快速实现功能的python程序员。

jxWebUI的使用非常简单,主要包括几个步骤:

1、导入依赖

from jxWebUI import jxWebLogger, jxWebServer, jxWebCapa, jxWebGetUser, jxWebSQLGetDBConnection

2、创建一个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')

这会在左侧的快捷工具栏中出现一个二级目录:测试->测试1
在这里插入图片描述

点击【测试1】就会显示上面的【test_web】页面。

5、定义一个获取登录用户信息的函数并送给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设置一个用户登录验证与用户信息获取的函数。因为是示例,所以这里就是简单把用户登录时输入的登录名直接封装成了一个User对象返回给jxWebUI,并未做验证。

如果需要验证,则修改get_user函数,对登录名和密码进行校验即可。返回None则代表登录失败,用户将无法登入。

返回的是用户自定义的一个对象,但必须要有name、abbr、roles三个函数,否则会执行失败,无法返回左侧的快捷栏,则用户见到的就会是一个空白页面。

6、启动web服务

jxWebServer.start(port=10068)

启动后,打开: http://127.0.0.1:10068/tms.html# 会弹出一个登录窗口,因为我们送入的get_user并未做用户的登录验证,所以随便输入用户名和密码就会登入。

因为jxWebUI需要做一点初始化的工作,所以可能要等两三秒中,就会在左侧的快捷栏,出现【测试->测试1】。点击测试1就会弹出test_web界面。

需要注意的是,和上面的截图不同,输入框中会出现:【测试输出3】。这是因为test_web函数不仅仅只是定义一个页面,其函数体中的代码:

jxWebLogger.info(f'testUI_tms::test_web')  
ci.setOutput('input1', '测试输出3')

也会在页面打开时得到执行。这两条代码中:

jxWebLogger.info(f'testUI_tms::test_web') 

会将字符串【testUI_tms::test_web】以info级别记入jxWebLogger。其对应的日志文件位于执行程序所在目录的子目录【./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,然后在命令行执行:

python3 testUI_tms.py

然后在浏览器中打开: http://127.0.0.1:10068/tms.html# 进行查看。

jxWebUI编程指南

请在python解释器中执行:

>>> from jxWebUI import startJxWebUIManualServer
>>> startJxWebUIManualServer(port=10068, web_def=True)

然后在浏览器中打开: http://127.0.0.1:10068/tms.html# 随便输入用户名、密码登录后,就可以查看到编程手册的目录:
在这里插入图片描述

整体说明菜单下是jxWebUI编程的总体概念和API说明等,web组件说明菜单下则详细介绍了已开放的web组件的说明和属性等。点击这二者的章节会以markdown的形式提供相应的说明:
在这里插入图片描述

web组件定义菜单下则提供了一个jxWebUI自举的web组件定义和展示功能:
在这里插入图片描述
在这里插入图片描述

jxWebUI在启动后,会在执行程序所在的目录下自动创建logs子目录,并在其中创建两个日志文件:

  • rolling.log:是jxWebUI的运行日志,包括用户的操作等
  • web.log:jxWebUI的web服务所依赖的tornado的日志

这两种日志都是30个日志文件、每个日志文件500M进行循环,所以如长期运行需注意硬盘空间的使用情况。

安装jxWebUI

pip install jxWebUI
http://www.xdnf.cn/news/14318.html

相关文章:

  • 大模型微调(Fine-tuning)概览
  • 算法导论第七章:快速排序的艺术与科学
  • 使用axios及和spirng boot 交互
  • @SpringBootTest 详解
  • Day32
  • 《Vuejs设计与实现》第 9 章(简单 diff 算法)
  • NISP-PTE基础实操——SQL注入
  • [蓝桥杯 2025 国 B] 斐波那契字符串一一题解
  • 论文笔记 <交通灯> <多智能体>DERLight双重经验回放灯机制
  • HTML5+JS实现一个简单的SVG 贝塞尔曲线可视化设计器,通过几个点移动位置,控制曲线的方向
  • 路由器端口映射怎么设置?本地固定内网IP给外面网络连接访问
  • [深度学习]目标检测YOLO v3
  • AI视野:视频处理AI排行榜Top10 | 2025年05月
  • 解决电脑第一排按键功能失效的问题
  • 多维数据透视分析应用案例与深度解析
  • Micro-F1分数(多选)
  • 基于Python爬虫的房价可视化
  • android为什么不用sqlite数据库,而要用Realm
  • Python使用requests调用接口
  • SQL Server从入门到项目实践(超值版)读书笔记 17
  • 目标分割数据集大全「包含分割数据标注+训练脚本」 (持续原地更新)
  • Level1.8for循环
  • 【Create my OS】5 内核线程
  • 分割数据集 - 航拍水域分割数据集下载
  • SylixOS armv7 任务切换
  • 【C判断a*a+b*b=c*c且a>=b>0且输出最小的】2022-6-26
  • 包含30个APP客户端UI界面的psd适用于旅游酒店项目
  • 基于ssm智慧乡村旅游服务平台微信小程序源码数据库文档
  • 青少年编程与数学 01-011 系统软件简介 21 杀毒软件及安全软件
  • C++ 网络编程(12)利用单例逻辑实现逻辑类