【问题标题】:Is there a good way to get the view callable itself through introspection with the Pyramid framework有没有一种好方法可以通过 Pyramid 框架的自省来获取视图本身可调用
【发布时间】:2014-09-12 09:02:21
【问题描述】:

我正在尝试使用 Pyramid 内省接口从可调用视图中获取给定资源类型的所有视图的列表。我可以使用以下内容获取一组已添加的视图配置的自省表:

@view_config(...)
def view_callable(context, request):
  introspector = request.registry.introspector
  for view_int in introspector.get_category('views'):
    view_int = view_int['introspectable']

虽然我没有找到任何关于判别器格式的官方文档,但从这里看来 view_int.discriminator[1] 是遍历的上下文类型, view_int.discriminator[2] 是视图名称, view_int.discriminator[3] 是路由名称等

但是,如何获得该视图的视图可调用函数本身? IIntrospectable 似乎没有提供获取此功能的方法?

有没有更好的方法在运行时根据 route_name、上下文类型等获取所有已注册视图可调用的列表?

【问题讨论】:

    标签: pyramid


    【解决方案1】:

    通过查看源代码,我发现了以下有效的简单解决方案。不过,我不确定这是否稳定,因为我没有在官方文档中找到它。

    for view in request.registry.introspector.get_category('views'):
        context = view['introspectable']['context']
        view_callable_class = view['introspectable']['callable']
        view_callable_method_name = view['introspectable']['attr']
    

    【讨论】:

      猜你喜欢
      • 2015-05-12
      • 2016-12-26
      • 1970-01-01
      • 2015-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多