You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

django-link-shortener

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

django-link-shortener

A simple Django Url Shortener.

pipPyPI
Version
1.1.0
Maintainers
1

image PyPI - License PyPI Codecov

django-link-shortener is a Django app for creating time-limited and usage-capped short URLs.

Features

  • Generate short links for URLs.
  • Time-sensitive links (configurable lifespan).
  • Usage-limited links (configurable maximum uses).
  • Per-user override of default settings via Django admin.
  • Test endpoint for easy shortcode creation during development.
  • Character set for shortcodes excludes I, i, 1.

Usage

  • Install with pip install django-link-shortener

  • Add shortener to your INSTALLED_APPS setting:

    INSTALLED_APPS = [
        ...
        'shortener',
    ]
    
  • Include shortener.urls in your project urls.py:

    path('s/', include('shortener.urls')),
    
  • Run python manage.py migrate to create the shortener models.

  • Use shortener.create(user, link) to generate a shortcode.

    from shortener import shortener
    
    user = User.objects.first()
    shortener.create(user, "https://example.com")
    
  • To expand the shortcode use shortener.expand(shorlink_id), or visit http://127.0.0.1:8000/s/<shortcode>/.

Test Endpoint

  • To enable the test endpoint, add the following to settings:

    SHORTENER_ENABLE_TEST_PATH = True
    
  • Start the development server and visit http://127.0.0.1:8000/s/test/<my-url-here> to create a test shortcode.

  • Visit http://127.0.0.1:8000/s/<shortcode>/ to be redirected

Configuration Options

Place in settings.py. Each setting can be overridden on a per-user basis using the UrlProfile section in the Django admin.

SHORTENER_ENABLED
Default: True

Controls whether users without a shortener profile can create shortlinks.

SHORTENER_MAX_URLS
Default: -1

Controls the default maximum limit of generated urls per account. -1 sets infinite.

SHORTENER_MAX_CONCURRENT
Default: -1

Controls the default maximum limit of concurrent (active) generated urls per account. -1 sets infinite.

SHORTENER_LIFESPAN
Default: -1

Sets the default lifespan of links in seconds. -1 sets infinite.

SHORTENER_MAX_USES
Default: -1

Sets the default amount of times a link can be followed. -1 sets infinite.

SHORTENER_LENGTH
Default: 5

Note: Omitted from UrlProfile.

Sets how many digits should be used for links. Tries up to three times to generate a unique shortcode where Each failure will result in length temporarily being increased by 1.

SHORTENER_ENABLE_TEST_PATH
Default: False

If true, creates shortlinks on authenticated requests to s/test/<url>/ and returns a shortcode.

Common Use Cases

goo.gl type usage (default). Unlimited concurrent links for an unlimited length of time

SHORTENER_ENABLED = True
SHORTENER_MAX_URLS = -1
SHORTENER_MAX_CONCURRENT = -1
SHORTENER_LIFESPAN = -1
SHORTENER_MAX_USES = -1

Internal temporary link usage. 100 active links with a lifespan of 1 hour. 1 usage per link.

SHORTENER_ENABLED = True
SHORTENER_MAX_URLS = -1
SHORTENER_MAX_CONCURRENT = 100
SHORTENER_LIFESPAN = 600
SHORTENER_MAX_USES = 1

Changelog

For versions > v0.5 see Release Notes

v0.5

  • Replaced NullBooleanField with BooleanField (Credit: sen-den)
  • Replaced travis-ci with github actions

v0.4

  • Allow null values in UrlProfile; null fields will use global values
  • str representation of UrlProfile in admin
  • add user to str representation of UrlMap
  • removed 256 char limit on full_url (Credit: Khaeshah)

Keywords

url shortener

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts