Django城市的简单替代方案
django-cities-light的Python项目详细描述
django cities light–简单django cities替代方案
此附加组件提供用于导入国家、地区/州和 数据库中的城市数据。
数据来自GeoNames,包含城市、地区/州和国家。
此应用程序不需要空间查询支持。
这个应用程序非常简单,如果您想使 例如,地址簿。如果你想建立一个功能齐全的空间 数据库,你应该使用 django-cities。
要求:
- python 2.7或3.3,
- django>;=1.8
- mysql或postgresql或sqlite。
是的,由于某些原因,以前在mysql上工作的代码(不是没有痛苦的xd) 不再工作了。所以我们现在使用django.db.transaction.atomic 来自django 1.6,只是为了支持mysql庸医。
升级
请参见更改日志。
安装
安装Django Cities灯:
pip install django-cities-light
或开发版本:
pip install -e git+git@github.com:yourlabs/django-cities-light.git#egg=cities_light
将城市灯光添加到已安装的应用程序中。
配置筛选器以排除不需要的数据,即:
CITIES_LIGHT_TRANSLATION_LANGUAGES = ['fr', 'en'] CITIES_LIGHT_INCLUDE_COUNTRIES = ['FR'] CITIES_LIGHT_INCLUDE_CITY_TYPES = ['PPL', 'PPLA', 'PPLA2', 'PPLA3', 'PPLA4', 'PPLC', 'PPLF', 'PPLG', 'PPLL', 'PPLR', 'PPLS', 'STLMT',]
现在,运行迁移,它将只为 禁用:
./manage.py migrate
数据导入/更新
最后,用命令填充数据库:
./manage.py cities_light
此命令有很好的文档记录,请参阅帮助:
./manage.py help cities_light
默认情况下,更新过程尝试更新所有字段,包括国家/地区/城市段塞。但有一个选项可以保持它们的完整性:
./manage.py cities_light --keep-slugs
使用固定装置
geonames.org每天都会更新,它的完整导入非常慢,所以 如果要多次导入相同的数据(例如 服务器)使用fixture和helper management命令很方便:
./manage.py cities_light_fixtures dump ./manage.py cities_light_fixtures load
为了减少空间,json fixture使用bzip2压缩,并可以获取 从任何http服务器或本地文件系统。
请参阅帮助:
./manage.py help cities_light_fixtures
发展
创建开发virtualenv(您需要在基本系统中安装tox):
tox -e dev source .tox/dev/bin/activate
然后运行完整导入:
test_project/manage.py migrate test_project/manage.py cities_light
有几个影响项目设置的环境变量(如db_engine和ci),您可以在test_project/settings.py中找到它们。
要运行测试套件,您需要使用无密码登录安装postgresql或mysql,或者只使用sqlite。否则,尝试创建/删除数据库的测试将失败。
运行完整的测试套件:
tox
要在特定环境中运行测试,请使用以下命令:
tox -e py27-django18-sqlite
要运行一个特定的测试,请使用此测试:
tox -e py27-django18-sqlite -- cities_light/tests/test_form.py::FormTestCase::testCountryFormNameAndContinentAlone
要运行得更快,您可以切换到特定的tox virtualenv:
source .tox/py27-django18-sqlite/bin/activate CI=true test_project/manage.py test cities_light.tests.test_form.FormTestCase.testCountryFormNameAndContinentAlone
如果要生成文档,请使用以下步骤:
source .tox/dev/bin/activate cd docs make html
如果您准备发送修补程序,请阅读实验室指南:https://github.com/yourlabs/community/blob/master/docs/guidelines.rst
资源
你可以订阅邮件列表,提出问题,或只是被告知 包更新。