Django的绝对URI函数和模板标签
项目描述
django-absoluteuri
Django的绝对URI函数和模板标签。
为什么
有时候你需要输出一个绝对URL(例如,在电子邮件中),但你并不总是可以访问请求。这些实用工具如果可用,将使用 Sites 框架来创建绝对URI。
安装
安装django-absoluteuri
pip install django-absoluteuri
然后将其添加到你的INSTALLED_APPS
INSTALLED_APPS = ( # ... 'django.contrib.sites', 'absoluteuri', )
django-absoluteuri需要将Sites 框架配置好并添加到INSTALLED_APPS中。
设置
该库返回的uris协议默认为http。你可以使用ABSOLUTEURI_PROTOCOL设置来指定协议。
# settings.py
ABSOLUTEURI_PROTOCOL = 'https'
# Elsewhere
>>> absoluteuri.build_absolute_uri('/some/path/')
'https://example.com/some/path/'
过滤器
有时使用模板标签比使用过滤器更容易。你也可以这样做。
{% load absoluteuri %}
<a href="{{ my_object.get_absolute_url|absolutize }}">click here</a>
但是,有些情况下不能使用标签但可以使用过滤器。
{% load absoluteuri %}
{% include "some-other-template.html" with url=my_object.get_absolute_url|absolutize %}
功能
django-absoluteuri 还提供了两个功能,分别是 build_absolute_uri 和 reverse,它们是 request.build_absolute_url 和 urlresolvers.reverse 的等效函数。
>>> import absoluteuri
>>> 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_PROTOCOL 设置。[编号 1]
记录了站点框架要求。
1.0.0 (2015-03-17)
首次发布在 PyPI 上。
项目详情
关闭
django-absoluteuri-1.3.0.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 2b7cb57748b4f557d2cdb1f74d6cfa197bed7f664b9c2a039094575a1b648e4a |
|
MD5 | b9494044d5c4cbd7d702e3c901111c58 |
|
BLAKE2b-256 | da92eb37eaef8f099c6ceccc4e9d86629dc99a5a228ef1c9215ee66a56ee0d1c |