A django model & fixture containing all data from the countries table of Geonames.org
Project description
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
Add countries_plus to your INSTALLED_APPS
Sync your fixtures:
python manage.py syncdb
In your code use:
from countries_plus.models import Country usa = Country.objects.get(iso3='USA')
Enabling the optional middleware:
Follow steps 1 & 2 above.
Add countries_plus.middleware.AddRequestCountryMiddleware to your middleware.
add the following two settings to your settings.py:
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’
Compatibility
Compatible with Django 1.2+
Integrating with django-languages-plus
If you also have django-languages-plus(https://pypi.python.org/pypi/django-languages-plus) installed then you can run the following command once to associate the two datasets and generate a list of culture codes (pt_BR for example):
from languages_plus.utils import associate_countries_and_languages associate_countries_and_languages()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django-countries-plus-0.3.zip.
File metadata
- Download URL: django-countries-plus-0.3.zip
- Upload date:
- Size: 38.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b2cf242523bb0fa27db3b5a522bb432888db8f44f9fe0997e441a7d5fdac73e
|
|
| MD5 |
2b96099ad35019aea67eb531e3db22b7
|
|
| BLAKE2b-256 |
3ff42fe6c1be4c714ec0e2b535b7bb2af920fec70445a15446f68844a18e49e4
|