如何创建类似于current_user的函数?

危险爪

在Flask中,我想了解如何创建行为类似于current_user在任何地方(控制器和视图)都可以使用的函数,但是我一直在努力地实际知道要寻找什么才能找到答案。

我能找到的最接近SO的帖子是这篇文章,但这是针对Ruby而不是Python的,有人可以向我指出正确的方向吗?谢谢!


到目前为止,我有:

在我__main__.py我有这个:

@app.context_processor
def foo_processor():
    def foo():
        return 'Hello World'

这样的结果是,我可以访问{{ foo }}Jinja模板,而不必从控制器发送过来。不幸的是,我无法访问foowithin我的控制器,这也是我希望能够做到的。我需要以某种方式导入它吗?

普雷斯顿·黑格

如果我正确理解这一点,则需要一个可以在模板和控制器中使用的变量,而不必每次都将其传递到模板中。为此,首先,创建一个函数以获取变量。这可能类似于获取用户的设置。然后在上下文处理器中,传递此函数的结果。要在控制器中也访问它,请创建一个其他变量,该变量保存getter的值。请注意,如果函数返回不同的值,则可能需要调用函数而不是使用变量。

# create a getter function, this returns the property's value.
def get_property():
  return "Test Text"

property = get_property() # this is only to make code pretty later on.

# the context processor passes the property to the templates.
@app.context_processor
def property_processor():
  return dict(property=get_property())

在控制器中,您可以访问之前创建的变量。

def view():
  if property == true:
    return redirect(url_for('index'))
  else:
    return redirect(url_for('access_denied'))

请注意,如果您的值将更改,则可能需要改用该函数,并在每次渲染视图时重新调用getter。这将使第一个if语句变为if get_property() == true:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何创建类似于ForEach的方法

来自分类Dev

如何创建类似于angular的emberjs服务?

来自分类Dev

如何创建类似于 Auth::routes() 的路由

来自分类Dev

如何使构造函数类似于多维向量?

来自分类Dev

如何在Swift中创建类似于Ruby中的扫描的函数

来自分类Dev

如何创建一个类似于“ Data.Vector.modify”的函数来接收列表?

来自分类Dev

Rspec。如何测试current_user方法

来自分类Dev

Rspec。如何测试current_user方法

来自分类Dev

如何获取 current_user 的对话?

来自分类Dev

类似于创建对象而不是方法的匿名函数?

来自分类Dev

是否可以在Python中创建类似于JS间隔的函数?

来自分类Dev

如果对于Devise current_user为nil,则创建后备

来自分类Dev

允许current_user看到只为他创建的用户

来自分类Dev

如何创建类似于引导但更深的CSS“良好”效果?

来自分类Dev

如何在C中创建类似于GUI的文本界面

来自分类Dev

如何在C ++中创建类似于stl的库

来自分类Dev

Perl,如何创建类似于子例程的map / grep?

来自分类Dev

如何创建类似于Google图片的WPF布局

来自分类Dev

如何创建类似于Google Analytics(分析)的自己的JavaScript API

来自分类Dev

如何创建类似于cifar-10的数据集

来自分类Dev

如何创建类似于水平滚动条的按钮?

来自分类Dev

如何创建类似于Set的可识别对象的集合?

来自分类Dev

如何创建类似于此图像的悬停/活动链接?

来自分类Dev

如何创建类似于JGrowl的用户通知消息

来自分类Dev

如何创建类似于Play商店的加载指示器?

来自分类Dev

如何创建类似于带边框表的div元素

来自分类Dev

如何创建类似于Google图片的WPF布局

来自分类Dev

如何创建类似于 django-shop 中的产品属性

来自分类Dev

如何在android中创建类似于fb的事件表单

Related 相关文章

  1. 1

    如何创建类似于ForEach的方法

  2. 2

    如何创建类似于angular的emberjs服务?

  3. 3

    如何创建类似于 Auth::routes() 的路由

  4. 4

    如何使构造函数类似于多维向量?

  5. 5

    如何在Swift中创建类似于Ruby中的扫描的函数

  6. 6

    如何创建一个类似于“ Data.Vector.modify”的函数来接收列表?

  7. 7

    Rspec。如何测试current_user方法

  8. 8

    Rspec。如何测试current_user方法

  9. 9

    如何获取 current_user 的对话?

  10. 10

    类似于创建对象而不是方法的匿名函数?

  11. 11

    是否可以在Python中创建类似于JS间隔的函数?

  12. 12

    如果对于Devise current_user为nil,则创建后备

  13. 13

    允许current_user看到只为他创建的用户

  14. 14

    如何创建类似于引导但更深的CSS“良好”效果?

  15. 15

    如何在C中创建类似于GUI的文本界面

  16. 16

    如何在C ++中创建类似于stl的库

  17. 17

    Perl,如何创建类似于子例程的map / grep?

  18. 18

    如何创建类似于Google图片的WPF布局

  19. 19

    如何创建类似于Google Analytics(分析)的自己的JavaScript API

  20. 20

    如何创建类似于cifar-10的数据集

  21. 21

    如何创建类似于水平滚动条的按钮?

  22. 22

    如何创建类似于Set的可识别对象的集合?

  23. 23

    如何创建类似于此图像的悬停/活动链接?

  24. 24

    如何创建类似于JGrowl的用户通知消息

  25. 25

    如何创建类似于Play商店的加载指示器?

  26. 26

    如何创建类似于带边框表的div元素

  27. 27

    如何创建类似于Google图片的WPF布局

  28. 28

    如何创建类似于 django-shop 中的产品属性

  29. 29

    如何在android中创建类似于fb的事件表单

热门标签

归档