如何使用 web.py 将参数传递给页面类?



我的程序中有几个类。 称为WebServer的主要应用程序创建 web.py 应用程序本身,并调用网页的其他类。例如,我可以将self.var1传递给搜索类__init__吗?因为我只想在index类中创建一个方法,例如set_var1或类似的东西,所以我不知道如何访问 Web 应用程序创建的此类的特定实例。

班级:

import sys
import os
import web
from pages.search import search
from pages.index import index

class WebServer:
def __init__(self):
self.var1 = "test"
self.urls = (
'/', 'index',
'/search', 'search'
)
self.app = web.application(self.urls, globals())
self.app.run()
if __name__ == "__main__":
w = WebServer()

不是真的,不是。searchindex的特定实例由web.py创建,以响应传入的请求。有更好/更简单的方法。

此外,将此初始化放在 WebServer 类中虽然可能,但并不是使用web.py执行此操作的常用方法。类不需要这样做:它是一个单例,这个文件本质上是一个启动/配置文件。

要使应用程序范围的信息可用于您的"响应"类(搜索、索引等),请将该信息设置为全局信息,或将其挂钩到web.config即 Web 中。存储()。例如:

app = web.application(urs, globals())
web.config.update({"var1" : "test"})
app.run()

然后,您可以使用响应。例如:

class search(object):
def GET(self):
if web.config.var1 == 'test':
return do_test_search()
return do_regular_search()

最新更新