在 Django App 中显示州、县、市

Posted

技术标签:

【中文标题】在 Django App 中显示州、县、市【英文标题】:Displaying states, counties, cities in a Django App 【发布时间】:2012-02-07 04:20:54 【问题描述】:

我希望有人能指出我正确的方向,因为我没有正式的编程经验,也不是真正的开发人员。我有一个 django 网站,它是个人和企业的目录。该网站是由其他开发人员创建的,现在我正在管理并且不知道我在做什么和学习什么。我一直在阅读我能拿到的所有内容,并且在这个过程中学到了很多东西,但我被卡住了。

我想创建一个列出美国所有州的页面,当用户点击州名时,他们将被引导到一个包含所有市县的页面(当他们点击市或县时,他们将看到一个模板页面,其中大部分是静态内容,但用适当的信息替换城市或县名等本地数据)。

我打算使用 geodjango 或 django 城市,但它们都太复杂了(我不是很有经验,这是轻描淡写的 :)。

我现在正在创建一个包含我想要的信息(州/县/城市/邮政编码)的 csv 文件,我计划将其导入数据库,然后使用模型/视图/模板来显示数据。

我考虑过使用这个 api http://www.sba.gov/about-sba-services/7617/ 而不是将数据导入我的数据库。

我的问题如下:

实现州、县、市和邮政编码页面的最佳方法是什么?这些页面具有关系,以便城市和邮政编码与县和州相关联?

如何使用http://www.sba.gov/about-sba-services/7617/ api 来完成上面提到的,我在使用 api 时是否还需要将数据导入数据库并创建模型/视图/模板?

我知道这些是基本问题,我知道我应该参加一些课程来学习它,但我想也许我会很幸运,有人会提供一个可行的答案。请记住,我的经验非常少,因此详细说明答案会有所帮助。提前谢谢你。

【问题讨论】:

【参考方案1】:

我已经构建了一个地理定位应用程序,并且还发现 geodjango 和 django-cities 对于我需要的东西来说太过分了。

所以我使用http://www.geonames.org/ 并将他们的数据库导入其中。如果您相应地设置模型,您可以像常规数据库一样查询它。 Django-cities 做同样的事情,但我从来没有让它工作,它会导入所有东西。如果您只需要导入美国的州和城市,那么您可以手动忽略其余部分,或者在导入所有内容后使用 django 删除它们。然后将你的数据库变成一个 Django 固定装置,这样每次都只用你的数据重新导入它。

我发现他们也有特定国家/地区的转储,所以你很幸运。只需下载美国的并进行设置。 http://download.geonames.org/export/dump/US.zip(这里有带有额外数据的城市)——如果你想节省空间,不要导入你不需要的东西。 您必须将它与 admin 表一起使用,该表的 ID 是城市数据库为 State 引用的 ID - http://download.geonames.org/export/dump/admin1CodesASCII.txt (稍后如果您需要减少查询,您可以合并表,以便城市已经拥有州。)

如果您需要任何其他帮助,请询问。用这些数据库做事很容易。一开始唯一令人困惑的是管理代码和城市名称之间的链接。

只需以相同的方式为您的 Django 数据库表建模,您甚至可以使用 Django 自己的 ORM。

【讨论】:

感谢您的回答,真的很有帮助,我创建了一个包含州和城市的 csv 文件以及一个包含州和县的不同 csv 文件,例如:City State Lat Long AIBONITO PR 18.14 - 66.26 Anasco Pr 18.28 -67.14 Angeles Pr 18.28 -66.79 Arecibo PR 18.45 -66.73县01003 Baldwin County Al 01005 Barbour County Al 01007 Bibb County Al 01009 Blount County Al 01011 Bullock County Al 01013 Calhoun County Al 01015 Calhoun County Al 01017 Chambers County Al 01019切罗基县阿尔 所以我有 2 个不同的文件,想将它们导入数据库,这样我就可以创建页面并相应地调用数据。你认为这可以吗,还是我应该按照你上面对地名的建议做。 回顾一下,我将启动一个新的 django 应用程序并创建模型以显示具有子县、市、zip 的州的类。并为以孩子为县的州县创建另一个班级。然后使用视图定义数据并使用html模板显示数据?听起来不错,我真的没有这方面的经验,所以我只是想确认一下。 任何带有详细信息的示例代码都会非常有帮助,此外,您是否有使用 django 的 RESTful Api 的经验,如果我使用 sba.gov/about-sba-services/7617 api,这是另一种方式吗?我只需要州/县/城市/拉链 - 再次感谢 我现在主要纠结的是如何导入数据。

以上是关于在 Django App 中显示州、县、市的主要内容,如果未能解决你的问题,请参考以下文章

我需要美国州和州县的名单[关闭]

ajax(省,市,县)三级联动

给定每个区域的边界和纬度/经度,以编程方式查找州/县

django模板templates详解

不是正确的子查询,一个州的多个县试图获得州的计数

怎么用option写:省市县的标签。比如说我选择‘省’的时候,自动跳出‘市’,选择市的时候,自动跳出‘县’