Python自学之Pywebio(四)添加菜单并增加菜单链接至新页面

liftword1个月前 (03-26)技术文章6

Python自学之Pywebio(三)增加button按钮

前面文章我们规划了系统框架、编写了主体架构、新增了按钮。本章我们新增菜单并跳转到新页面,打开一个表格。

我们先学两个函数:

put_collapse(title, content=[], open=False, scope=None, position=- 1)

输出可折叠的内容。

参数如下:

  • title (str) – 内容标题
  • content (list/str/put_xxx()) – 内容可以为字符串或 put_xxx 类输出函数的返回值,或者由它们组成的列表。
  • open (bool) – 是否默认展开折叠内容。默认不展开内容
  • scope, position (int) – 与 put_text 函数的同名参数含义一致

样例:

put_collapse('Large text', 'Awesome PyWebIO! '*3)
put_collapse('Collapse title', [
    'text',
    put_markdown('~~Strikethrough~~'),
    put_table([
        ['Commodity', 'Price'],
        ['Apple', '5.5'],
    ])
], open=True)

put_link(name, url=None, app=None, new_window=False, scope=None, position=- 1)

输出链接到其他网页或PyWebIO App的超链接。

参数如下:

  • name (str) – 链接名称
  • url (str) – 链接到的页面地址
  • app (str) – 链接到的PyWebIO应用名。urlapp 参数必须指定一个但不可以同时指定
  • new_window (bool) – 是否在新窗口打开链接
  • scope, position (int) – 与 put_text 函数的同名参数含义一致

样例:

def task_1():
    put_text('task_1')
    put_link('task_2',app='task_2')

def task_2():
    put_text('task_2')
    put_buttons(['Go task 1'],onclick=[lambda:put_link('task_1',app='task_1')])

def index():
    put_link('Go task 1',app='task_1')
    put_link('Go task 2',app='task_2')

start_server([index,task_1,task_2])

现在我们编写系统内的菜单,代码如下:

put_collapse('人员管理',[put_text('人员基本信息'),put_text('人员情况表')])

效果如下:


下面我们增加一个链接:

put_collapse('人员管理', [put_link('人员基本信息',app='people',scope='data')])

效果如下:

下面我们将这个菜单赋值给一个参数,然后添加进菜单区域。

menu_page = put_collapse('人员管理', [put_link('人员基本信息',app='people',scope='data')])
#按钮区域添加两个按钮:新建、删除
button_page = put_buttons(['新建', '删除'], onclick=['edit', 'delete']).style('text-align:right;margin-top:13px;')
#页面主体框架
put_row([put_text('logo')]).style('border:1px solid green ;text-align:left;background-color:yellow;')
put_row([
    put_column([menu_page]),None,
    put_column([
        put_row([button_page]).style('border:1px solid red ;text-align:right;background-color:grey;'),None,
        put_row([put_scope('data',content=put_text('data'))]),None,
        put_row([put_code('page')])
    ])
],size =  '15% 1% 84%')

效果如下:

当我们点击菜单时,系统可以跳转到一个新的页面,只不过现在还是空白或报错。

下一章我们跳转到新页面,并为页面增加一个table表格。

留一个疑问:能否让新页面在data区域打开。欢迎大家留言沟通。下章见。

相关文章

.htaccess设置301跳转及常用技巧整理

在虚拟主机环境中,基本上都是Apache环境。Apache的伪静态的设置,都是在网站根目录设置.htaccess文件,在.htaccess文件中无论是伪静态,还是301跳转,甚至是防盗链和禁止某个IP...

干货|Python大佬手把手带你破解哔哩哔哩网滑动验证(上篇)

/1 前言/ 有爬虫经验的各位小伙伴都知道,正常我们需要登录才能获取信息的网站,是比较难爬的。原因就是在于,现在各大网站为了反爬,与爬虫机制斗智斗勇,一般的都加入了图片验证码、滑动验证码之类的干扰,让...

python笔记八:跳转语句continue

跳转语句:break continue'''cbreak 跳出循环。continue语句:不满足条件跳过(跳回循环体)'''#例:求1---100以内不是5的倍数的和# sum_namber=0# f...

Windows GUI自动化 Pywinauto(五) 处理弹窗、错误处理与多窗口切换

引言如何在自动化桌面应用程序时处理弹窗、进行错误处理和切换多个窗口。1. 处理弹窗(对话框)弹窗通常会在应用程序执行某些操作时弹出,要求用户做出某种选择或输入数据。在自动化过程中,处理弹窗是非常重要的...

「好课堂在线」pygame事件处理游戏界面进行全屏切换

作者:好课堂数学编程陈老师 我们在第一个程序里使用了如下的语句screen = pygame.display.set_mode((800, 800), 0, 32)也讲述了各个参数的意思,当我们把第二...

Python的selenium实现切换框架frame的方法

1. 介绍1.1 介绍福哥在使用selenium实现页面爬取的时候发现遇到包含框架(frame)的网页时候就无法通过find_xxx方法得到页面上的元素,这可真是麻烦了啊!福哥在使用F12调试前端的时...