gpt4 book ai didi

python - Pyramid 通过 URL 获取路由名称(字符串)

转载 作者:太空宇宙 更新时间:2023-11-04 05:53:16 25 4
gpt4 key购买 nike

我想弄清楚是否可以通过 URL(不是请求)URL 而是字符串 URL 在 Pyramid 中获取路由名称。假设我有一个请求,路径是/admin/users/manage。我知道你可以匹配路由名称来获取请求的 route_name 但是如何获取/admin 的路由名称和/admin/users 的路由名称?

introspector.get('routes', 'admin') 

可以获取管理路由的路由路径,但是否可以反过来工作?

introspector.get('routes', 'admin/users')

基本上有没有办法获取admin/前缀下所有路由的route_objects? Introspector 看起来我可以遍历所有路由,但不能查询路径内的所有特定路由。

最佳答案

我必须深入研究 Pyramid 源代码才能得到这个解决方案。

另外,澄清一下:此解决方案将为您提供正确的route_name,用于提供的route_url

如果我将 my_route 作为路由名称并将 /foo/bar 作为 url,我将以下 my_url 变量设置为“/foo/bar”并返回“my_route”

from pyramid.interfaces import IRoutesMapper

@view_config(...)
def call_route_by_url(request):
routes = request.registry.queryUtility(IRoutesMapper).get_routes()
my_url = '/your/url/here'
for r in routes:
if r.path == my_url:
# do something with r.name <-- that is your route_name
pass

关于python - Pyramid 通过 URL 获取路由名称(字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29089704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com