簡體   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