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将列表a作为从流收集的映射中的值   java SVN Eclipse忽略所有用户的文件夹   @PathVariable类型不匹配的java配置错误页   java在应用程序中使用Oracle数据库需要什么?   java无法确定用户何时为我的自定义异常输入数字小于0的问题   java如何通过软件导航网站?   java将JFace TableViewer添加到SWT表   Java中“field”和“this.field”的区别   java战舰代码不工作   java如何设置可执行IE 11驱动程序的路径   java这个程序如何一步一步地计算两个区间之间的阿姆斯特朗数?   JavaRestlet:在过滤器中使用转换器服务   Tensorflow:如何在java中使用python训练的语音识别模型   EclipseJava。util。使用迭代器从HashMap获取ArrayList时出现NoTouchElementException   Java Swing启动屏幕配置错误   为什么MySQL浮点与Java浮点不同?