Skip to main content

A short URL (rev=cannonical) handler for Django apps.

Project description

django-shorturls

A custom URL shortening app for Django, including easy rev=cannonical support.

Most code was originally by Simon Willison; see http://simonwillison.net/2009/Apr/11/revcanonical/ for details. Improved slightly and packaged by Jacob Kaplan-Moss.

Patches welcome: http://github.com/jacobian/django-shorturls

Usage

So, you want to host your own short URLs on your Django site:

  1. In your settings, define a set of prefixes for short URLs:

        SHORTEN_MODELS = {
            'A': 'myapp.animal',
            'V': 'myapp.vegetable',
            'M': 'myapp.mineral'
        }
    
    The keys are string prefixes; they can be any string, actually,
    but since we're going for short a single character is probably good.
    
    Values are the (hopefully-familiar) ``"<app-name>.<model-class>"`` used
    by Django to identify a model. Remember: ``app-name`` is the
    (case-sensitive) last bit of your app's name in ``INSTALLED_APPS``, and
    ``<model-class>`` is your model class's name, lowercased.
    
    Make sure your models have a ``get_absolute_url()`` method defined.
  2. Wire up the redirect view by adding to your URLconf:

    ('^short/', include('shorturls.urls'))
  3. If you’d like to quickly link to shortened URLs in your templates, stick "shorturls" in INSTALLED_APPS, and then in your templates do:

    {% load shorturls %}
    <a href="{% shorturl object %}">...</a>

    (where object is a model instance).

    Alternatively:

    {% load shorturls %}
    {% recanonical object %}

    This generates the whole <link rev="canonical" href="..."> tag for you.

That’s it.

If you’d like more control, keep reading.

Settings

Available settings are:

SHORTEN_MODELS

You’ve seen this one.

SHORT_BASE_URL

If defined, the shorturl and revcanonical template tags will prefix generated URLs with this value. Use this if you’ve got a shorter domain name you’d like to use for small URLs.

For example, given SHORT_BASE_URL = 'http://exm.pl/', {% shorturl obj %} would return something like http://exm.pl/AbCd.

SHORTEN_FULL_BASE_URL

The domain to redirect to when redirecting away from the small URL. Again, you’ll use this if your short URL base and your “real” site differ.

If not defined, the redirect view will try to guess the proper domain by consulting the django.contrib.sites framework, if installed, or the requested domain, if not.

Project details


Download files

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

Source Distribution

django-shorturls-1.0.tar.gz (7.1 kB view details)

Uploaded Source

File details

Details for the file django-shorturls-1.0.tar.gz.

File metadata

File hashes

Hashes for django-shorturls-1.0.tar.gz
Algorithm Hash digest
SHA256 3ce53b00ea4b664d1e023d01c1f3f3c94991c1f091f8a486e1d2e45948183550
MD5 0423145daff2ad7849183b7a0ee84967
BLAKE2b-256 83936033c5fc9c9e1c6460d7c0f23e5c2eeb87d8dd8bc149b33eb170b8086d8e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page