如何在其他函数中使用函数的返回(不使用类)

2024-04-26 00:59:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个功能:

def search_result(request):

    if request.method =='POST':
        data = request.body
        qd = QueryDict(data)
        place = qd.values()[2]
        indate = qd.values()[3]
        outdate = qd.values()[0]
        url = ('http://terminal2.expedia.com/x/mhotels/search?city=%s&checkInDate=%s&checkOutDate=%s&room1=2&apikey=%s') %(place, indate, outdate, MY_API_KEY)
        req = requests.get(url).text
        json_data = json.loads(req)

        results = []
        for hotels in json_data.get('hotelList'):
            results.append(hotels.get('localizedName'))
        return HttpResponse(results)

现在我想在其他函数中使用func1的return来呈现模板,如下所示:

def search_page(request):

    r = search_result(request)
    d = r.content
    return render(request,'search.html', {'res':d})

这实际上是行不通的。 有没有什么方法可以做我想做的事(不用类)? 我从模板表单通过ajax发布,我的第一个函数正常工作,并在控制台打印结果。当我尝试在下一个函数中使用我的响应在模板中呈现它时,问题就出现了。这就是我请求帮助我的原因。你有什么办法让我的第一个函数的反应对另一个函数可见吗?你知道吗


Tags: 函数模板jsonsearchdatagetreturnrequest
1条回答
网友
1楼 · 发布于 2024-04-26 00:59:33

您已经定义了func1来接受request参数,但是当您在第二个函数中调用它时,您不会传递任何参数。你知道吗

如果您传入request,它应该可以工作。你知道吗

编辑:您正在查找结果,因此我想您可以直接返回结果,而不是返回HttpResponse(也许我们需要更多关于您要完成的任务的信息)

def func1(request): 
    ......
    results = []
    for hotels in json_data.get('hotelList'):
        results.append(hotels.get('localizedName'))

    return results


def funk2(request):

    f = funk1(request)

    return render(request,'search.html', {'res':f})

相关问题 更多 >