2010-08-23 72 views
2

我们正在用django框架和python开发我们的网站。目前我们正在寻找api/a工具来验证用户输入的物理地址。它不需要复杂。我们只需要避免垃圾邮件注册。对于这一步,我们需要验证国家,州,城市和邮编是否属于彼此。例如,伯克利作为一个邮编94704的城市不在纽约州,等等。 有什么想法?python/django中的邮件地址验证

回答

1

您可能可以使用GeoCoding服务(如Google的)来验证地址是否存在。

+0

感谢马修。它是否使我们有能力测试一个邮政编码是属于一个城市还是一个州?我试图避免使用协调员! – Sara 2010-08-23 20:27:26

+0

我假设,如果您传递了无效的邮政编码,GeoCoding服务将找不到该地址。 – 2010-08-24 02:13:26

3

您可以试试pygeocoder。它是Google Geocoding V3 API的Python包装器。它可以满足您的一些验证需求。

from pygeocoder import Geocoder 
g = Geocoder() 
g.geocode("1 wellington, ottawa").valid_address 
>>> True 
g.geocode("1 wellington, chicago").valid_address 
>>> False 

它可以采取一些小的拼写错误太多

result = g.geocode("1600 amphiteather, mountain view") 
result.valid_address 
>>> True 
print result 
>>> 1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA 
g.geocode("16000000 amphitheater, mountain view").valid_address 
>>> False 

但谷歌并不总是正确的邮政/邮政编码。我相信USPS拥有美国的公共API。

disclamer:我做了pygeocoder

+0

嗨!看到这篇文章后,我去了并安装pygeocoder。看起来很酷。我有一个相关的问题。你能帮忙吗? http://stackoverflow.com/questions/24921545/how-to-assign-to-a-django-pointfield-model-attribute – 2014-07-23 21:42:02