跳转到主要内容

Django的URL缩短应用程序。

项目描述

django-shorturls

https://travis-ci.org/bfirsh/django-shorturls.svg?branch=master https://badge.fury.io/py/django-shorturls.svg

一个针对Django的自定义URL缩短应用程序,包括简单的rev=canonical支持。

大部分代码最初由Simon Willison编写;有关详情请参阅http://blog.simonwillison.net/post/57956849396/revcanonical/。稍作改进并打包由Jacob Kaplan-Moss完成。

欢迎提交补丁:http://github.com/bfirsh/django-shorturls

用法

因此,您想在您的Django网站上托管自己的短URL

  1. 在您的设置中,定义一组短URL的前缀

    SHORTEN_MODELS = {
        'A': 'myapp.animal',
        'V': 'myapp.vegetable',
        'M': 'myapp.mineral'
    }

    键是字符串前缀;实际上可以是任何字符串,但为了简洁,单个字符可能更好。

    值是 Django 用来识别模型的(希望熟悉的)"<app-name>.<model-class>"。记住:app-name 是你 INSTALLED_APPS 中应用程序名称的最后一部分(区分大小写),而 <model-class> 是你的模型类名称,小写。

    确保你的模型定义了 get_absolute_url() 方法。

  2. 通过向你的 URLconf 中添加来连接重定向视图

    ('^short/', include('shorturls.urls'))
  3. 如果你想在模板中快速链接到缩短的 URL,将 "shorturls" 添加到 INSTALLED_APPS,然后在你的模板中做

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

    (其中 object 是一个模型实例)。

    或者

    {% load shorturl %}
    {% revcanonical object %}

    这会为你生成整个 <link rev="canonical" href="..."> 标签。

就是这样。

如果你想有更多控制,请继续阅读。

设置

可用的设置有

SHORTEN_MODELS

你已经看到这个了。

SHORT_BASE_URL

如果已定义,则 shorturlrevcanonical 模板标签将在生成的 URL 前缀添加此值。如果你有一个短域名你想用于小 URL,请使用此设置。

例如,给定 SHORT_BASE_URL = 'http://exm.pl/'{% shorturl obj %} 将返回类似 http://exm.pl/AbCd 的内容。

SHORTEN_FULL_BASE_URL

当从短 URL 转发时,重定向到的域名。同样,如果你短 URL 基础和你的“真实”网站不同,请使用此设置。

如果没有定义,重定向视图将尝试通过咨询已安装的 django.contrib.sites 框架或请求的域名来猜测正确的域名。

SHORTURLS_DEFAULT_CONVERTER

用于在短 URL 和模型 ID 之间进行转换的转换器。默认为内置的 62 进制转换。

可用的转换器

  • shorturls.baseconv.base62 62 进制编码。

  • shorturls.baseconv.base32 Douglas Crockford 的 32 进制

  • shorturls.baseconv.hexconv 十六进制编码。

  • shorturls.baseconv.bin 二进制编码,因为为什么不。

由以下赞助商支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面