如何在Django中访问函数之外的变量

时间:2015-07-18 19:54:35

标签: python html django

如何在页面功能之外访问myvar。当我在页面函数中打印(myvar)时,我可以打印myvar,但是当它在外面时则不能打印。

def page(request):
    form = MyForm(request.POST or None)

    if form.is_valid():
        instance = form.save(commit=False)

        myvar = form.cleaned_data.get("myvar")
        # myvar is printed here
        print(myvar)
        if not myvar:
            myvar = "this"
        instance.myvar= myvar
        instance.save()
    context = {
        "form" : form
    }
    return render(request, "home.html", context)

# I want to print the contents of myvar but it doesn't work here
print(myvar)

由于

2 个答案:

答案 0 :(得分:0)

您需要在此处考虑请求/响应周期。正如我在评论中所说的那样,即使Python范围规则允许这样做,你的功能会怎样?请求已结束并已返回。

如果你需要这个,你必须自己在视图中调用该函数,并将值传递给它。

答案 1 :(得分:-1)

你不能。您应该阅读https://www.lucidchart.com/techblog/2014/12/02/definitive-guide-copying-pasting-javascript/

如果你坚持这样做,你必须使用全球myvar。沿着这些方向的东西

myvar = None

def myfn(args):
    global myvar

    myvar = "z"

print myvar

虽然这不可取。

此外,print(myvar)语句只会在导入模块时运行一次,因此很可能不会做你想做的事。