是否有一个最新的Django地理定位模块,可以给我使用IP的国家?



是否有像插入代码并进行地理定位一样简单的事情?我只想要国家,这样我的网站可以切换到适当的语言。

似乎我找到的那些要么被弃用,要么用户少于10人,要么是付费/试用版。

最近遇到了这个问题-确实只有付费选项在那里。然而,有一个几乎免费的解决方案是使用谷歌云功能。

https://cloud.google.com/functions/docs/create-deploy-gcloud

下面是你想要实现的函数的代码:

const cors = require('cors')
const corsOptions = {
origin: true
}
function _geolocation(req, res) {
const data = {
country: req.headers["x-appengine-country"],
region: req.headers["x-appengine-region"],
city: req.headers["x-appengine-city"],
cityLatLong: req.headers["x-appengine-citylatlong"],
userIP: req.headers["x-appengine-user-ip"],
}
res.json(data)
};
exports.geolocation = (req, res) => {
const corsHandler = cors(corsOptions);
return corsHandler(req, res, function() {
return _geolocation(req, res);
});
};

然后在你的网页的JS代码中,你调用这个函数并从data.country获取国家。

然而,如果你想要的是语言选择-我建议使用Django中包含的语言自动选择。添加到中间件:

MIDDLEWARE = [
...
'django.middleware.locale.LocaleMiddleware',
]

它将根据浏览器设置自动检测用户的语言。更多信息:https://docs.djangoproject.com/en/4.1/topics/i18n/translation

最新更新