django的绝对uri函数和模板标记

django-absoluteuri的Python项目详细描述


绝对django

https://travis-ci.org/fusionbox/django-absoluteuri.png?branch=master

django的绝对uri函数和模板标记。

为什么

有时需要输出绝对url(例如,在 但你并不总是有权访问请求。这些实用程序使用 站点框架(如果可用)用于创建绝对uri。

安装

安装django absoluteuri:

pip install django-absoluteuri

然后将其添加到您的INSTALLED_APPS

INSTALLED_APPS = (
    # ...
    'django.contrib.sites',
    'absoluteuri',
)

django absoluteuri要求Sites FrameworkINSTALLED_APPS很好,而且配置也很好。

设置

此库返回的uri的协议默认为http。你 可以使用ABSOLUTEURI_PROTOCOL设置指定协议。

# settings.pyABSOLUTEURI_PROTOCOL='https'# Elsewhere>>>absoluteuri.build_absolute_uri('/some/path/')'https://example.com/some/path/'

模板标签

有两个模板标记,absoluteuriabsolutizeabsoluteuri的工作方式与url标记类似,但它输出绝对值 网址。

{%loadabsoluteuri%}<ahref="{%absoluteuri'my_view'kwarg1='foo'kwarg2='bar'%}">click here</a>

absolutize将获取一个相对url并返回一个绝对url。

{%loadabsoluteuri%}<ahref="{%absolutizeurl_from_context%}">click here</a>

过滤器

有时,使用过滤器比使用模板标记更容易。你能做到的 也。

{%loadabsoluteuri%}<ahref="{{my_object.get_absolute_url|absolutize}}">click here</a>

但在某些情况下,不能使用标记,但可以使用筛选器。

{%loadabsoluteuri%}{%include"some-other-template.html"withurl=my_object.get_absolute_url|absolutize%}

功能

django absoluteuri还提供了两个功能, build_absolute_urireverse,它们相当于 request.build_absolute_urlurlresolvers.reverse

>>>importabsoluteuri>>>my_relative_url='/path/to/somewhere/'>>>absoluteuri.build_absolute_uri(my_relative_url)'http://example.com/path/to/somewhere/'>>>absoluteuri.reverse('viewname',kwargs={'foo':'bar'})'http://example.com/path/to/bar/'

更改日志

1.3.0(2018-09-04)

  • 添加对django 2.1的支持。拆下django的支架<;1.11。

1.2.0(2016-02-29)

  • 添加绝对化过滤器。这不赞成绝对化标签。[4]

1.1.0(2015-03-23)

  • 添加了AbsoluteUri_协议设置。[1]
  • 记录的站点框架要求。

1.0.0(2015-03-17)

  • pypi上的第一个版本。

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

推荐PyPI第三方库


热门话题
java如何在表被注释到配置之前获取表的元数据?   java滚动条不会出现在JList上   java JOGL监视器GPU内存   java为什么要使用RecyclerView onDraw延迟   java定制Oppo Reno 2 Z CPH1951(手机型号)的固件(闪存文件)   java自定义线程池执行器   java如何解决发布版本中重复的jar条目[com/安卓/volley/R.class]?   java如何使用Bukkit API触发事件?   java在blazemeter jmeter RTE插件中使用ctrl+w输入   C#/Visual Studio的java JDT等价物   java为什么当maxread值很大而收到的消息数量很小时,卡夫卡消费者会无限期消费?   java游戏2。x:包含模板列表的绑定模型   带压缩的java日志旋转   运行时。exec用java运行程序读取它正在做什么