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

How can I access to individual page with uuid?

我想为会员创建一个个人网页,并发送一个 link 和 uuid,例如:

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

Link 将是唯一的,每个成员都可以查看他们的数据。 "route"(或任何其他方式)是否可能?

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

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

上面的路由器将隐藏默认控制器和功能 URLs,所以而不是:

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,当存在 URL arg 时,它使默认函数(即 index)从 URL 中隐藏。

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

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

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