在Django应用程序中显示州,县,城市

时间:2012-02-07 04:20:54

标签: python django api geolocation

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

我想创建一个列出所有美国州的页面,当用户点击州名称时,他们将被定向到包含所有城市和县的页面(当他们点击城市或县时,他们会将看到一个主要是静态内容的模板页面,但用指定状态的适当信息替换本地数据,如城市或县名称。

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

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

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

我的问题如下:

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

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

我知道这些是基本问题,我知道我应该选择一些分类来学习它,但想想也许我会很幸运,有人会提供可行的答案。请记住,我的经验很少,所以详细说明答案会很有帮助。提前谢谢。

1 个答案:

答案 0 :(得分:2)

我已经建立了一个地理定位应用程序,并且还发现geodjango和django-cities因为我需要的东西而过度杀伤。

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

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

如果你需要任何其他帮助,那就问一下。使用这些数据库很容易。最初唯一令人困惑的事情是管理员和城市名称之间的联系。

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