使用ipAPI和Djang获取浏览器的位置

2024-09-30 22:10:24 发布

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

我正在使用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)

Tags: 代码用户namepyinfo服务器getresponse
1条回答
网友
1楼 · 发布于 2024-09-30 22:10:24

如果没有Javascript,就不可能从客户端获得精确的/GPS位置

您的代码实际上没有在客户机上运行;只在你自己的服务器上。一个browser API将获得客户机的位置(如果授予了权限),然后可以将其发送到要处理的服务器

您似乎要做的是调用一个API,该API将检查一个IP地址,该地址可用于识别某人所处的大致区域。但是执行请求的主机是服务器,正如您在Python代码中所做的那样

我不建议在客户机上使用这个API,因为这样做需要公开APIkey

相关问题 更多 >