用Python写网页的工具 SimpleStart 库介绍 - 05页面间的变量传递

本文介绍了如何在SimpleStart框架下进行Web应用的多页面设计,包括通过代码动态打开子页面、页面间的变量传递以及自定义侧边栏目录。还提及了配置文件config.yaml在页面显示和API接口中的作用以及热代码启动功能。
摘要由CSDN通过智能技术生成

在上一章节中,我们介绍了如何在项目中创建一个名为 "pages" 的子目录。在这个目录中,我们可以将应用的代码自动创建为多个页面,并在侧边栏中显示这些页面的链接。

本章将继续讨论基于web应用的多页面设计和开发。

1. 用代码方式打开页面

假设我们在pages子目录有两个页面,sub1.py, sub2.py, 那么在主页面 app.py 也可以通过代码方式打开这两个页面。这里我们创建两个按钮,通过 ss.openpage 函数打开其它页面。

#app.py

import simplestart as ss

ss.write("Main")

def open_sub_page1():
    #将加载 pages/sub1.py 到新页面
    ss.openpage("sub1")

def open_sub_page2():
    #将加载 pages/sub2.py 到新页面
    ss.openpage("sub2")


ss.button("Page1", onclick = open_sub_page1)
ss.button("Page2", onclick = open_sub_page2)

2. 页面变量传递

如果希望在页面间传递变量,我们可以利用 ss.session 实现。

app.py 稍作修改

#app.py

import simplestart as ss

ss.write("Main")

def open_sub_page1():
    #将加载 pages/sub1.py 到新页面, 并传递变量
    ss.session["aaa"] = 1
    ss.openpage("sub1")

def open_sub_page2():
    #将加载 pages/sub2.py 到新页面,并传递变量
    ss.session["aaa"] = 2
    ss.openpage("sub2")


ss.button("Page1", onclick = open_sub_page1)
ss.button("Page2", onclick = open_sub_page2)

在页面sub1.py中接受页面变量

#sub1.py

#sub1.py

import simplestart as ss

ss.write("Sub1")

#每次进入该页面的事件
def onPageEnter():
    #弹出消息框,显示传递的页面变量值
    ss.message(ss.session["aaa"])

 3. 侧边栏的页面目录定制

在上一章中,我们看到SimpleStart默认以Python代码的文件名为基础创建了一个应用程序的所有页面的链接。

如果需要定制目录的显示内容,可以这样做,在项目的根目录里创建一个配置文件, config.yaml, 在里面增加 pages 项,如下面所示:

pages:
  - 所有页面:
    - 主页: main.py
    - 页面1: sub1.py
    - 页面2: sub2.py

刷新页面,即可看到不同的侧边栏了。顺便说一下,在大部分情况下,SimpleStart支持热代码启动,即修改代码后会自动重新加载页面。但是,在修改config.yaml配置时,需要手动刷新浏览器。

我们看到侧边栏里的页面不再显示文件名,而是显示我们在config.yaml中设置的显示内容。关于这个配置文件 config.yaml, 我们以后再详细介绍。

实际上 SimpleStart 自己的在线帮助系统,也是通过这个 config.yaml 来设置目录页的。

 simplestart API 接口文档

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值