我正在使用ipdata.io API获取访问我的网站的用户的位置。我能够从文档中实现python代码,但是这会返回服务器所在的位置。我假设这是因为views.py是在该服务器上运行的,它实际上是在发出请求,而不是在用户浏览器上。 如果不在浏览器端使用javascript,是否可以在服务器端使用python请求获取用户的位置
这段代码“工作”,但它只返回我的服务器,而不是用户浏览器的位置
views.py
class infoRequestPage(CreateView):
model = InfoRequest
form_class = moreInfoForm
template_name = 'info_request.html'
success_url = reverse_lazy('home')
def get(self, *args, **kwargs):
payload = {"api-key": "myapikey"}
response = requests.get('https://api.ipdata.co', params=payload).json()
info_City = response['city']
info_Region = response['region']
info_Country = response['country_name']
pageVisit = InfoRequest(
infoCity = info_City,
infoRegion = info_Region,
infoCountry = info_Country,
pageVisited = "infoRequest",)
pageVisit.save()
return super().get(*args, **kwargs)
如果没有Javascript,就不可能从客户端获得精确的/GPS位置
您的代码实际上没有在客户机上运行;只在你自己的服务器上。一个browser API将获得客户机的位置(如果授予了权限),然后可以将其发送到要处理的服务器
您似乎要做的是调用一个API,该API将检查一个IP地址,该地址可用于识别某人所处的大致区域。但是执行请求的主机是服务器,正如您在Python代码中所做的那样
我不建议在客户机上使用这个API,因为这样做需要公开APIkey
相关问题 更多 >
编程相关推荐