1

我正在尝试通过我的网站使用 geopy 从用户位置坐标获取地址,该网站托管在 pythonanywhere 服务器上。
以下是我在烧瓶中用来完成这项工作的代码。

   from geopy.geocoders import Nominatim
   geolocator = Nominatim()
   @app.route('/location', methods = ['POST'])
   def location():
       latitude = request.json['latitude']
       longitude = request.json['longitude']
       location = geolocator.reverse(str(latitude)+ "," + str(longitude))
       send_email("myemail@example.com","Location:",str(location.address))
4

2 回答 2

3

PythonAnywhere 开发人员:PythonAnywhere 上的免费帐户只能访问一组有限的外部网站(白名单),以阻止人们在我们的网站上注册一次性免费帐户,然后使用它们攻击其他网站。我的猜测是您的 GeoIP 查找正在尝试访问未列入白名单的站点。

如果站点具有官方公共 API,我们通常很乐意将站点添加到白名单中,因此,如果您可以跟踪您的应用程序试图访问的站点并为我们提供主机名和 API 文档的链接,我们可能会得到它在那里,您的代码将起作用。

(或者,当然,您可以升级到付费帐户——因为我们可以将他们与真实的人联系起来,他们不受白名单的限制。:-)

于 2015-07-24T11:22:04.790 回答
0

从你的问题很难说,但也许问题是解码错误。

尝试这个:

location = geolocator.reverse(str(latitude)+ "," + str(longitude), language="en")

这将确保结果是英语,而不是一些外语。

于 2015-07-18T11:21:31.847 回答