繁体   English   中英

如何将变量从一个函数发送到另一个函数?

[英]How do I send a variable from one function to another function?

这是一个我希望能够将一个变量传递给另一个变量的函数的示例。

def foo(request):
    if request.method == "POST":
        unique_id = request.POST.get('per_id','')
        baz = get_object_or_404(Name, pk=unique_id)
        return render(request, 'details/guy.html', {'baz': baz})
    return render(request, 'details/person.html')

def bar(request):
    if request.method == "POST":
        baz = get_object_or_404(Name, pk=unique_id)
        return render(request, 'details/guy.html', {'baz': baz})
    return render(request, 'details/guy.html')

问题是这样的:

local variable 'unique_id' referenced before assignment

那么,如何获取此变量以将foo(request)函数提供给bar(request)函数?

我知道我可以使用cPickle,但是该网站将获得的流量几乎肯定会导致cPickle对象与另一个人混在一起。

会话变量应少用。

def foo(request):
    if request.method == "POST":
        unique_id = request.POST.get('per_id','')
        request.session["unique_id"] = unique_id
        baz = get_object_or_404(Name, pk=unique_id)
        return render(request, 'details/guy.html', {'baz': baz})
    return render(request, 'details/person.html')

def bar(request):
    if request.method == "POST":
        baz = get_object_or_404(Name, pk=request.session["unique_id"])
        del request.session["unique_id"]
        return render(request, 'details/guy.html', {'baz': baz})
    return render(request, 'details/guy.html')

我不建议,但是也可以使用全局变量。

unique_id = None

def foo(request):
    global unique_id
    unique_id = 10

def bar(request):
    print unique_id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM