向django添加三个模板标记:“fullurl”、“fullstatic”和“buildfullurl”。模板标记“fullurl”的作用与“url”类似,但它总是打印带有scheme和domain的绝对url

django-fullurl的Python项目详细描述


django-fullurl on PyPIdjango-fullurl on PyPIdjango-fullurl on PyPIdjango-fullurl on PyPITravis CI for django-fullurl (master branch)Say Thanks!

简介

django fullurl向django添加三个新的模板标记:fullurlfullstaticbuildfullurl

fullurlfullstatic的行为分别类似于urlstatic,但它们总是返回带有方案和权限/域部分的绝对url。

例如,取这个url标记:

{%url"articles:article"slug="hello"%}

在我们的示例中,将打印:

/articles/hello

这是由某个绝对url调用的,因为它以正斜杠开头。但是,它不是一个absolute绝对url,因为它不包含scheme和authority部分。

如果我们用fullurl替换url,它将打印此结果:

http://example.com/articles/hello

在幕后,它使用request.build_absolute_uri来确定正确的方案和权限/域部分。

就像fullurl扩展url一样,fullstatic扩展static模板标记。

buildfullurl以相对url作为参数,并打印带有scheme和authority部分的绝对url。例如:

{%buildfullurlarticle.cover.url%}

安装

在命令行上运行:

$ pip install django-fullurl

确保这两个应用程序包含在您的INSTALLED_APPS设置中:

INSTALLED_APPS=['django.contrib.staticfiles','fullurl',# ...]

确保上下文处理器中包含django.template.context_processors.request

示例用法

opengraph

opengraphurl必须是绝对的,包括scheme和authority部分。以下是如何使用fullurlfullstatic来帮助您完成此操作:

{%loadfullurl%}<metaproperty="og:url"content="{%fullurl"articles:article"article=article%}"><metaproperty="og:image"content="{%fullstatic"cat.jpg"%}">

您可以使用buildfullurl标记将URL从相对转换为绝对

{%loadfullurl%}<metaproperty="og:url"content="{%buildfullurlarticle.get_absolute_url%}"><metaproperty="og:image"content="{%buildfullurlarticle.image.url%}">

另请参见

以下是一些备选方案,按字母顺序排列:

  • django-absoluteuriGitHubDjango Packages)提供两个模板标记:absoluteuriabsolutize。与此应用不同,它使用站点框架来确定要使用的域,这可能是一个附加的数据库查询。这在某些情况下非常有用,例如在创建电子邮件时。
  • django-absoluteurlGitHubDjango Packages)提供了一个模板标记absoluteurl,其工作方式与fullurl类似。不过,它似乎在python 2或较新的django版本中不起作用。
  • django完整url(GitHub)允许您使用诸如{{ url_parts.domain }}之类的代码获取当前url的特定部分。它不提供与此应用程序相同的功能,命名相似性是无意的。
  • django-urltagsDjango Packages)提供了一些模板标记,包括absurl,但它自2012年以来就没有更新过,而且似乎在最近的django版本上也不起作用。

更改日志

1.0

  • 第一次释放标记为稳定
  • 支持Django 2.0和2.1
  • 支持Python3.7

0.5

  • 添加新模板标记:buildfullurl
  • 重新获得麻省理工学院的许可
  • 支持django 1.11

感谢您的贡献Jakub Dolejšek 新模板tage的buildfullurl

0.4

  • 修复readme.rst中的rst语法错误

0.3

  • 修复并改进文档
  • 将changelog.rst添加到manifest.in

0.2

  • 除了django 1.10之外,还添加了对django 1.8和django 1.9的支持。
  • 除了Python3.6之外,还添加了对Python2.7、Python3.2、3.3、3.4和3.5的支持。

0.1

  • pypi上的第一个版本。

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

推荐PyPI第三方库


热门话题
java Jaxb:使用XMLAdapter的全局绑定双类型转换   for循环获取编译错误:无法将int[]转换为int-Java   在Java中是否可以调用另一个类的主方法并返回调用代码?   java如何与多个客户端共享单个程序?(意味着多个客户端线程是否共享相同的对象?)   显示Java Awt组件,但小程序中不显示Swing组件   java如何通过更改路径在同一存储中移动文件系统级Android   java如何获取元素的mouseMove位置?   utf 8如何在java中设置文件上传的UTF8?   java如何在没有setter方法的情况下将statelesbean中注入的实体管理器传递给dao   如何在Java WindowBuilder中以编程方式添加按钮   使用JAXB的XmlElement的java动态名称空间   Java正则表达式匹配器无法工作   java jsp如何打开随机https url?   使用哪种java持久性API?   日期java:具有纪元时间,以小时/天/周为单位打印发生的时间   java在JButtons/JLabels上拖动   java如何在jpa中编写求和查询?