在上一章节中,我们介绍了如何在项目中创建一个名为 "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 来设置目录页的。