django orm中内容的通用url shortner

django-laconicurls的Python项目详细描述


https://travis-ci.org/robert-b-clarke/django-laconicurls.svg?branch=masterDownloads

简介

django laconicurls不同于其他django url shortener应用程序。它使用django的genericforeignkeys和get_absolute_url为django模型的实例提供短url。我们的目标是提供简短的、可读的网址,这些网址可以在电子邮件、印刷活动、二维码和社交媒体等中显示。这些网址将继续在网站重组等方面发挥作用

快速启动

  1. 运行pip install django laconicurls安装django laconicurls

  2. 在“设置”中将“laconicURL”添加到已安装的应用程序。py:

    INSTALLED_APPS = (
        ...
        'laconicurls',
    )
    
  3. 将laconicurls urlconf添加到urls.py如果可能,最好使用一个不区分大小写的字符:

    url(r'^(?i)Z', include('laconicurls.urls')),
    
  4. 运行python manage.py migrate以创建必要的模型。

  5. 在代码中,创建一些url:

    from laconicurls.models import laconic_url_for_object
    #this can be any django object that supports get_absolute_url
    article = MyArticleModel.objects.get(pk=1)
    short_url = laconic_url_for_object(article)
    

功能

  • Creates and manages shortcut URLs for any instance of a Django model that implements get_absolute_url
  • Case insensitive Base27 encoding of URLs. Alphabet excludes vowels and numbers which look like vowels to reduce the likelyhood of offensive URLs (at least in English)
  • One laconic URL per object. Repeat calls to laconic_url_for_object for a given object will always result in the same URL

示例用法

假设您有两种型号,产品和促销,它们都实现了get_absolute_url,并且具有搜索引擎友好的url:

>>> Product.objects.get(pk=100).get_absolute_url()
'/products/garden/100-fancy-green-electric-lawnmower'
>>> Promotion.objects.get(pk=50).get_absolute_url()
'/promotions-and-hot-deals/50-up-to-twenty-percent-off-gardening-equipment'

显然,这些网址不适合打印活动,并有可能随着时间的推移而改变,受不同的搜索引擎优化趋势。

<>要添加对简洁性URL的支持,需要选择一个不与任何现有URL冲突的合适前缀。理想情况下,这将是一个单独的字符,不会区分大小写,但如果你想它可以更长或包含斜线。例如,将以下内容添加到urls.py中,使其具有以字母Q开头的LaconicURL:

url(r'^(?i)Q', include('laconicurls.urls')),

获取laconic url的最简单方法是使用laconic\u url\u for\u对象帮助器示例输出如下:

>>> from laconicurls.models import laconic_url_for_object
>>> laconic_url_for_object(Product.objects.get(pk=100))
'/QGH3'
>>> laconic_url_for_object(Promotion.objects.get(pk=50))
'/QGH4'

当访问这些url时,它们将重定向到各自的get_absolute_url方法调用返回的位置

待办事项

  • Add support for templatetags
  • Investigate ways to support alternate alphabets, as some users will not require case insensitive urls and may prefer a more efficient encoding (e.g. base 62)
  • Management commands for inspecting URLs

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
serversocket Java服务器socket中断如何   java通过随机类和排序为数组生成数据   @Column length大于255个字符的java实体   java在使用NIO2 API时消除检查异常   java使用用户凭据通过Microsoft Graph API上的控制台应用程序发送电子邮件   java将2个ArrayList一个接一个地显示到jTextArea中,根据输入的数据多次显示   java无法使用导入的库。安卓工作室。谷歌云端点jar   spring boot Neo4j Apoc在java中获取结果摘要时的情况   转义特殊字符javajson   无法在java中使用OpenCV读取图像,涉及unicode路径   swing Document Listener java“无法实例化DocumentListener类型”   java Piglatin,难以理解如何移动“.”一串   java映射请求基于一个可观察对象中的每个元素,使用改进?   java在可扩展字符串中搜索时,如何忽略字符的大小写?   在包中分组类的java约定   python为Java应用程序创建Ubuntu指示小程序   java Camunda:如何通过processInstanceId获取所有已完成的任务