我正在尝试创建一个管理命令来模拟与视图关联的一些api调用,但我不想对网址进行硬编码,例如像url='http://127.0.0.1:8000/api/viewname'
那样,以便发送请求。
如果我使用反向选项,我可以获得一半的网址/api/viewname
。
如果我尝试以这种方式发布请求
url = reverse('name-of-view')
requests.post(url, data=some_data)
我得到了
requests.exceptions.MissingSchema: Invalid URL '/api/viewname/': No schema supplied. Perhaps you meant http:///api/viewname/?
我是否必须查看服务器是在localhost上运行还是有更通用的方式?
答案 0 :(得分:1)
requests
模块需要绝对网址发布到。你需要
url = 'http://%s%s' % (request.META['HTTP_HOST'], reverse('name-of-view'))
requests.post(url, data=some_data)