gpt4 book ai didi

python - Django - 将城市、州和邮政编码合并到一个字段中

转载 作者:行者123 更新时间:2023-11-28 16:49:34 25 4
gpt4 key购买 nike

有人成功过吗?

尝试复制类似于在 http://www.walmart.com/cservice/ca_storefinder.gsp

用户可以在其中输入城市、州或邮政编码并进行智能查找

我开始尝试使用一些正则表达式和拆分字段,但我很快意识到这是一项需要更多思考才能使其智能地为最终用户工作的任务

考虑的方法

  • 实时 ajax 自动完成调用
  • Sphinx 全文搜索
  • 正则表达式搜索数据库端
  • 正则表达式验证用户输入

到目前为止的片段

import re

from general.models import ZipCode

def findLocation(value):
match = re.search(r"\d{5}", value)
if match:
try:
return Zipcode.objects.get(zip=value)
except ZipCode.DoesNotExist:
return False
else:
kwargs = {}
vals = value.split(',')
if len(vals) > 1:
kwargs['city'] = value[:len(value)-len(vals[-1])-1]
state = vals[-1].strip()
if len(state) == 2:
kwargs['state'] = state
else:
kwargs['state_name'] = state
else:
kwargs['city'] = value
return ZipCode.objects.filter(**kwargs)

此示例中的 ZipCode 是一个数据库模型,其中包含所有美国邮政编码/州/州缩写/城市在 github 上有一个副本可用

https://github.com/amites/django-general

最佳答案

最近遇到类似的问题,用了谷歌的Geocoding API去做这个。好的部分是您根本不需要解析地址字符串。你只需将它传递给谷歌,它就会处理解析。如果找到一个位置,它会返回一个描述该地址的结构化对象。您可以提取所需地址的任何部分。

当然,此解决方案仅在您拥有网站并且 Google Maps TOS 允许您使用地理定位 API 时才有效。 .

关于python - Django - 将城市、州和邮政编码合并到一个字段中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9000149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com