django的绝对uri函数和模板标记
django-absoluteuri的Python项目详细描述
绝对django
django的绝对uri函数和模板标记。
为什么
有时需要输出绝对url(例如,在 但你并不总是有权访问请求。这些实用程序使用 站点框架(如果可用)用于创建绝对uri。
安装
安装django absoluteuri:
pip install django-absoluteuri
然后将其添加到您的INSTALLED_APPS:
INSTALLED_APPS = ( # ... 'django.contrib.sites', 'absoluteuri', )
django absoluteuri要求Sites Framework在 INSTALLED_APPS很好,而且配置也很好。
设置
此库返回的uri的协议默认为http。你 可以使用ABSOLUTEURI_PROTOCOL设置指定协议。
# settings.pyABSOLUTEURI_PROTOCOL='https'# Elsewhere>>>absoluteuri.build_absolute_uri('/some/path/')'https://example.com/some/path/'
过滤器
有时,使用过滤器比使用模板标记更容易。你能做到的 也。
{%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_uri和reverse,它们相当于 request.build_absolute_url和urlresolvers.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上的第一个版本。