Skip to content

labd/django-postcode-lookup

Repository files navigation

django-postcode-lookup

This Django app provides a pluggable postcode Django REST Framework endpoint. It currently only works for postcodes in The Netherlands.

Currently supports the following services:

- ApiWise
- Webservices.nl
- postcodeapi.nu

Status

PyPI

Installation

pip install django_postcode_lookup

Minimum supported Django version: 5.2 (Django 6 supported)

Usage

Add the following to your urls.py:

path('postcode-lookup/', include('django_postcode_lookup.urls')),

Add a setting with the required backend

Webservices:

POSTCODE_LOOKUP = {
    'default': {
        'backend': 'django_postcode_lookup.backends.Webservices',
        'OPTIONS': {
            'username': 'someuser',
            'password': 'somepassword',
        }
    }
}

ApiWise:

POSTCODE_LOOKUP = {
    'default': {
        'backend': 'django_postcode_lookup.backends.ApiWise',
        'OPTIONS': {
            'api_key': 'somekey',
        }
    }
}

postcodeapi.nu:

POSTCODE_LOOKUP = {
    'default': {
        'backend': 'django_postcode_lookup.backends.PostcodeApiNu',
        'OPTIONS': {
            'api_key': 'somekey',
            'base_url': 'https://somebaseurl.com',
        }
    }
}

To offer some form of protection to the api endpoint for usage by others a valid csrf token is required.

Changelog and releases

This project uses changie for changelog management.

Add a changelog fragment in pull requests with:

changie new

To prepare a release, run the Prepare release PR GitHub Actions workflow. It batches unreleased fragments, updates CHANGELOG.md and version files, then opens a release pull request. Merging that release PR publishes the package and creates the GitHub release from the changelog entry.

About

Generic API for postcode lookups

Topics

Resources

License

Stars

8 stars

Watchers

7 watching

Forks

Packages

 
 
 

Contributors