Skip to main content

django-17track is an unofficial 17track.com API wrapper for Django.

Project description

Build status Project Status Python versions PyPI downloads Software license Project Status

django-17track is an unofficial 17track.com API wrapper for Django.

Installation

Install with pip:

$ pip install django-ok-17track

Update INSTALLED_APPS:

INSTALLED_APPS = [
    ...
    'track17',
    ...
]

Make migrations

$ python manage.py migrate

Available settings

TRACK17_API_KEY - API key for service.

TRACK17_API_KEY_FUNCTION - Custom function to return API key, if you want to store it outside the Django settings.

TRACK17_COUNTRIES_URL - Url to grab countries. Uses https://www.17track.net/en/apicountry.

TRACK17_CARRIERS_URL - Url to grab carriers. Uses https://www.17track.net/en/apicarrier.

Basic example to use:

How to get all countries and carriers:

python managet.py populate_carriers

How to register tracking number and get it’s info:

from rest_framework import serializers
from track17.services import register_track, get_track_info, get_track_info_as_packages
from apps.track17.exceptions import DateProcessingError



# try to register tracking number at 17track API
try:
register_track('tracking_number')
except DateProcessingError as exc:
raise serializers.ValidationError(str(exc))

# try to fetch an actual info about a tracking number
try:
    response: Dict = get_track_info('tracking_number')
except DateProcessingError as exc:
    raise serializers.ValidationError(str(exc))

accepted_packages = response.get('accepted', [])

# return packages info as a list of `PackageEntity` (dataclass instance) objects
# in a readable way with a represantion of carriers and countries as Django model instances
packages = get_track_info_as_packages(accepted)

Or can use 17track adapter directly:

from track17.track17 import Track17Adapter


track17 = Track17Adapter()
response = track17.register('number1', 'number2')
response = track17.get_track_info('number1', 'number2')

Project details


Download files

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

Files for django-ok-17track, version 0.0.3
Filename, size File type Python version Upload date Hashes
Filename, size django_ok_17track-0.0.3-py3-none-any.whl (13.4 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size django-ok-17track-0.0.3.tar.gz (10.2 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

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