Django城市的简单替代方案

django-cities-light的Python项目详细描述


https://secure.travis-ci.org/yourlabs/django-cities-light.png?branch=masterhttps://pypip.in/d/django-cities-light/badge.pnghttps://pypip.in/v/django-cities-light/badge.pnghttps://codecov.io/github/yourlabs/django-cities-light/coverage.svg?branch=stable/3.x.x

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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在JUnit5中定义优先级   Web驱动程序将焦点切换到iframe的java困难   java JFileChooser没有文件名文本字段选项   本地化是否可以回退到Java中resourcebundle的宏语言(例如,nynorsk>norsk)   禁用时Java断言的性能拖动   未考虑执行中的java jsonschema2pojo maven插件配置   java微调器。setSelection未调用setOnItemSelectedListener函数   序列化XStream:序列化java的反序列化。sql。时间导致错误   java无法理解为什么“ajpnio8009execXX”线程在AbstractQueuedSynchronizer$ConditionObject上阻塞/等待时间。等候   Java date给我的格式是mm/dd/yyyy,其中jquery datepicker的日期格式是dd/mm/yyyy   jsf如何用javaweb应用程序在客户端重写csv文件   雅加达ee Java邮件Api,无法从outlook客户端读取“.msg附件”   java PreparedStatement性能调优