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当我更改ImageButton图像时,不会实时更改   不尊重XML中按钮的安卓换行符,但它使用Java代码   java签署gradle插件   java如何在Launch4j中添加VM参数   通过ObjectOutputStream发送文件,然后用Java保存?   基于注释的web中的java DispatcherServlet配置。xml   java根据点击数对2D数组进行排序   java HSQLDB能处理数百万行吗?   ejb3.0 java ejb3@PostConstruct   java如何在WebSpherePortal8.0中应用主题更改?   如何配置java重启库以不重用cookie   java错误:表达式的开头非法,后跟PriorityQueue   java如何更新RecyclerView的数据集并从视图持有者处通知适配器?