django如何全局使用变量

时间:2015-03-01 09:51:22

标签: python django

我的一个视图中有一个变量

def ViewName(request):
      simple_variable = request.session['value']

在相同的views.py文件中,我有另一个视图

def AnotherViewName(request):
    --------------------
    --------------------

现在我想在simple_variable视图中使用变量AnotherViewName,我试过了

def AnotherViewName(request):
     global simple_variable

但是,它没有用,现在我的问题是,如何在Django中使用从一个视图到另一个视图的变量,或者我如何全局使用变量?

提及 simple_variable存储来自session的值,最初我必须在上面给出的ViewName视图中调用它。

我正在使用django 1.5

3 个答案:

答案 0 :(得分:4)

视图之间没有共享状态,因为它们可能在另一个线程中运行。因此,如果要在视图之间共享数据,则必须使用数据库,文件,消息队列或会话。

这是关于此的另一个stackoverflow。 How do you pass or share variables between django views?

在rego编辑问题后更新:

你不能这样做吗?

def ViewName(request):
     simple_variable = request.session['value']

def AnotherViewName(request):
     simple_variable = request.session['value']

答案 1 :(得分:1)

或者您可以使用session

def ViewName(request):
      #retrieve your value
      if 'value' in request.session:
          simple_variable = request.session['value']

def AnotherViewName(request):
    #set your varaible
    request.session['value'] = simple_variable

答案 2 :(得分:0)

我认为你可以这样做:

simple_variable = initial_value 

def ViewName(request):
    global simple_variable
    simple_variable = value
    ...

def AnotherViewName(request):
    global simple_variable