Skip to main content

A django model & fixture containing all data from the countries table of Geonames.org

Project description

===========
django-countries-plus
===========

django-countries-plus provides a model and fixture containing all top level country data from Geonames.org (http://download.geonames.org/export/dump/countryInfo.txt)

This package also provides a convenience middleware that will look up a country in the database using a defined meta header, ex: the Cloudflare provided geoip META header HTTP_CF_IPCOUNTRY. This country object will be
attached to the request object at request.country

The model provides the following fields (original geonames.org column name in parentheses).

* iso (ISO)
* iso3 (ISO3)
* iso_numeric (ISO-Numeric)
* fips (fips)
* name (Country)
* capital
* area (Area(in sq km))
* population (population)
* continent (continent)
* tld (tld)
* currency_code (CurrencyCode)
* currency_name (CurrencyName)
* phone (Phone)
* postal_code_format (Postal Code Format)
* postal_code_regex (Postal Code Regex)
* languages (Languages)
* geonameid (geonameid)
* neighbors (neighbours)
* equivalent_fips_code (EquivalentFipsCode)


------------
Installation
------------

::

pip install django-countries-plus


------------
Usage
------------

1. Add ``countries_plus`` to your INSTALLED_APPS

2. Sync your fixtures::

python manage.py syncdb

3. In your code use::

from countries_plus.models import Country
usa = Country.objects.get(iso3='USA')


Enbling the optional middleware::

1. Follow steps 1 & 2 above.

2. Add 'countries_plus.middleware.AddRequestCountryMiddleware' to your middleware.

3. add the following two settings:
COUNTRIES_PLUS_COUNTRY_HEADER - A string defining the name of the meta header that provides the country code. Ex: 'HTTP_CF_COUNTRY' (from https://support.cloudflare.com/hc/en-us/articles/200168236-What-does-CloudFlare-IP-Geolocation-do-)

COUNTRIES_PLUS_DEFAULT_ISO - A string containing an iso code for the country you want to use as a fallback in the case of a missing or malformed geoip header. Ex: 'US' or 'DE' or 'BR'

Project details


Release history Release notifications

History Node

1.2.1

History Node

1.2.0

History Node

1.1

History Node

1.0.1

History Node

1.0.0

History Node

0.3.3

History Node

0.3.2

History Node

0.3

This version
History Node

0.2

History Node

0.1.5

History Node

0.1.4

History Node

0.1.3

History Node

0.1.2

History Node

0.1.1

History Node

0.1.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
django-countries-plus-0.2.zip (37.9 kB) Copy SHA256 hash SHA256 Source None May 23, 2014

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page