我正在调用一个python函数并将http请求作为参数传递,但它不起作用。我在一个视图中创建了这个函数,并在另一个视图中调用了它,但是参数失败了。
这是我正在调用的函数
def load_colmeias(request):
apiario = request.GET.get('apiario')
if apiario != "":
colmeias = Colmeia.objects.filter(apiario=apiario)
return render(request, 'colmeias_choices.html', {'colmeias': colmeias})
else:
return render(request, 'colmeias_choices.html')
我给她打电话
load_colmeias(request)
但是出现了以下错误
NameError: name 'request' is not defined
我已经导入了“urlib”和“requests”库,但它总是给出相同的错误:
AttributeError: module has no attribute 'GET'
有人能帮我吗??我是python/django新手,我还在学习如何做事
3条答案
按热度按时间62lalag41#
看看你有没有
requests
安装:现在,检查:
在里面
load_colmeias(request)
,请确保参数实际为request
而不是requests
自始至终您的文件名不正确
requests.py
; 否则,您将导入自己的文件。vnjpjtjt2#
请求和请求是两个不同的东西,一个没有“s”是参数,而有“s”是方法。要使用请求,您必须导入请求库,这是一个从api获取数据的第三方库。
如果要调用此函数,必须通过api发出请求。为此函数创建api,然后发出请求。
您的views.py文件:
您的URL.py文件:
现在,您的api是:
http://127.0.0.1:8000/load_colmeias?apiario=1234
在发出请求之前,请确保您在api中使用了正确的端口并启动了服务器,并传递了正确的apiario值。
使用请求库调用此函数还有另一种方法:
您可以在任何文件中使用此函数,并再次使用此库调用函数。服务器必须正在运行并传递正确的Apario值。如果你正在传递一个请求参数,那么你必须发出请求。你不能这样称呼它。
0aydgbwb3#
我解决了这个问题!!基本上,我只是创建了一个调用另一个函数的函数,并将相同的参数传递给这两个函数。。。如下所示:
我不知道是否推荐它,但它解决了我在多个视图中重写同一代码的问题。