如何使用uuid访问单个页面?

时间:2019-07-17 06:15:44

标签: routes uuid web2py

我想为成员创建一个单独的网页,并使用uuid发送链接,例如:

https://example.com/app/262976c7-5c9a-46c4-a775-bbad186e

链接将是唯一的,每个成员都可以查看其数据。 可以使用“路线”(或任何其他方式)吗?

1 个答案:

答案 0 :(得分:0)

如果所有页面都是通过单个控制器操作提供的,并且UUID用作URL arg(即,URL路径的第一段 之后的控制器功能),则可以隐藏通过rewrite system的URL的控制器和功能部分。 route.py文件可能包含以下内容:

routers = dict(
    BASE = dict(
        default_controller = 'default',
        default_function = 'index',
        functions = ['index', 'action1', 'action2']
    )
)

上面的路由器将从URL中隐藏默认的控制器和功能,所以代替:

https://example.com/app/default/index/262976c7-5c9a-46c4-a775-bbad186e

您将拥有:

https://example.com/app/262976c7-5c9a-46c4-a775-bbad186e

请注意,路由器中的functions键在default.py控制器中包括所有功能的列表很重要,这样路由器才能区分功能名称和URL args,从而启用默认功能(即index),当存在URL arg时从URL中隐藏。

有关路由器的更多详细信息,请参见example routes.py

在default.py控制器中,index函数将根据第一个URL arg为页面提供服务:

def index():
    uuid = request.args(0)
    [fetch user specific data based on uuid]
    return dict(...)