Pyramid Thread Locals - 为什么get_current_request是个坏主意?

时间:2017-11-15 07:09:01

标签: python pyramid

The Pyramid documentation of thread locals表示

  永远不应该在资源代码中调用

get_current_request。如果资源需要访问请求,则应通过可调用的视图传递请求。

我正在寻找一种修改资源代码的方法。我总是将请求直接从view callable传递给资源,以便我可以: -

  1. 检查权限(request.has_permission())
  2. 使用用户反馈(session.flash())
  3. 更新会话闪存

    后者可以在不传递请求的情况下完成(使用inspect来获取当前会话),但与请求本身相同的是使用get_current_request,这被认为是个坏主意。

    1. 为什么这是个坏主意?
    2. 真正的坏主意是整个'访问伪全球价值'的事情(检查也会这样做)?
    3. 如何检查“当前用户”概念的权限,而无需传递请求(或传递request.user等)。
    4. 事实是我正在考虑这个糟糕设计的证据吗? ACL是否已经以某种方式完成所有这些而不需要传递请求对象?

0 个答案:

没有答案