我正试图通过托管在pythonanywhere服务器上的网站使用geopy从用户位置坐标获取地址。
以下是我在烧瓶中用来完成此操作的代码。
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))
答案 0 :(得分:2)
PythonAnywhere dev:PythonAnywhere上的免费帐户只能访问一组有限的外部网站(白名单),以阻止人们在我们的网站上注册一次性免费帐户,然后使用它们攻击其他网站。我的猜测是您的GeoIP查找尝试访问非白名单网站。
如果网站有官方公开API,我们通常很乐意将网站添加到白名单中,因此,如果您可以跟踪您的应用尝试访问的网站,并向我们提供主机名和API文档的链接,可以在那里得到它,你的代码就可以了。
(或者,当然,您可以升级到付费帐户 - 因为我们可以将它们连接到真实用户,但不受白名单限制。: - )
答案 1 :(得分:0)
很难从您的问题中说出来,但问题可能是解码错误。
试试这个:
location = geolocator.reverse(str(latitude)+ "," + str(longitude), language="en")
这将确保结果将是英语,而不是一些外语。