在Django views.py中创建变量并在以后访问它们

时间:2015-08-05 10:17:44

标签: python django

假设我在views.py中有以下两个函数:

def foo(request):
    class_instance = SomeClass()
    return HttpResponse('whatever')

def bar(request):
    # here I want to access class_instance

最初,调用foo(),稍后调用bar(),我想在其中访问变量class_instance

有没有办法实现这一点,既没有使用request.session也没有使用Django模型(例如django.db.models)?

(注意:我在views.py中对全局变量运气不错,但无论如何这可能是一个坏主意,并且不知何故并不总是有效)

1 个答案:

答案 0 :(得分:0)

您可以将变量作为模块常量,特别是如果它不易变化太多。

CLASS_INSTANCE = SomeClass()

def foo(request):
    return HttpResponse('whatever')

def bar(request):
    # here I want to access CLASS_INSTANCE

然后两个方法都可以访问它,但请记住,函数不能以这种方式改变常量的值

PS:实际上你可以改变全局的价值:

CLASS_INSTANCE = SomeClass()

def foo(request):
    global CLASS_INSTANCE
    CLASS_INSTANCE = SomeClass() # new instance
    return HttpResponse('whatever')

def bar(request):
    # here I want to access CLASS_INSTANCE