Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python(Django)中将一个函数调用为另一个函数_Python_Django - Fatal编程技术网

在Python(Django)中将一个函数调用为另一个函数

在Python(Django)中将一个函数调用为另一个函数,python,django,Python,Django,我试图在django中将函数调用为函数,但我一直得到: The view app.views.function1 didn't return an HttpResponse object. It returned None instead. 我的看法是: def function1(request): [some api calls] #Once this process is done I want to call my second function functi

我试图在django中将函数调用为函数,但我一直得到:

The view app.views.function1 didn't return an HttpResponse object. It returned None instead.
我的看法是:

def function1(request):
    [some api calls] 
    #Once this process is done I want to call my second function
    function2()
然后我有

def function2(request):
如何在Django/Python中轻松调用其他函数


p、 这些函数可以是一个,我只想把它们分开,让我的代码更可读,让一个函数只做一件事。

错误很明显:

view app.views.function1未返回HttpResponse对象。信息技术 而没有返回任何值

在完成
function1
时,您需要返回
HttpResponse
对象,因此如果
function2
是您的最后一个函数,它应该返回
HttpResponse
对象,您也应该返回该函数的结果:

def function1(request):
    [some api calls] 
    #Once this process is done I want to call my second function
    return function2(request)

def function2(request):
    # some hard work
    return HttpResponse(...)

通常,当我有一个实用程序函数时,我会考虑实用程序部分,以便多个视图可以引用同一个实用程序函数,而无需担心请求对象/上下文

但更具体地说,您的第一个函数(function1)没有返回HttpResponse对象(如错误所述)

你有两条路要走:

  • 让func2返回一个HttpResponse对象(并将请求参数也传递给它),然后让func1返回func2返回的内容(一个HttpResponse对象)

  • 让func2返回您想要的内容,让func1返回一个HTTPResponse对象

  • 在任何一种情况下,func1都必须返回HttpResponse对象

    但是,正如我上面所说的,如果func 1和func 2都是带有URL和所有jazz的有效视图,那么我会将func 2中的任何内容完全分解到另一个函数中,并使func 1和func 2都引用它(通常)