templatetag 调用 urlconf 并将其有效负载存储到模板上下文中
项目描述
django-rest-caller
用于调用 urlconf 视图端点的简单 django 模板标签。
限制
- 它仅适用于 GET 方法
- 它不处理没有正文的请求
- 它不适合登录所需的视图(它假设调用者处理访问端点所需的一切)
- 它假设端点返回一个 json
安装
使用 pip 安装
$ python3 -m pip install django-rest-caller
添加caller.apps.CallerConfig到INSTALLED_APPS
INSTALLED_APPS = [
...
'caller.apps.CallerConfig',
...
]
用法
称呼
在您的模板中加载模板标签
{% load caller_tags %}
并将call标签用作
{% call 'urlconf' arg1=42 arg2='X' with param1='1' param2='2' as 'object_name' %}
或者
{% call 'urlconf' 42 'X' with param1='1' param2='2' as 'object_name' %}
'urlconf' arg1=42 arg2='X'这是通常的 {% url %} 参数(记住:使用 args 参数列表或 kwargs 参数,不能同时使用)param1='1' param2='2'这些参数将被转换为 GET 查询字符串as 'object_name'将调用的对象存储到 object_name 对象中。它可以是字符串或变量名。
所以被调用的 url 等价于
{% url 'urlconf' arg1=42 arg2='X' %}?param1=1¶m2=2
会将结果calljson 对象注入到模板上下文中,因此您可以
- 用作上下文对象
{% load caller_tags %}
{% call 'api:blog-list' as 'posts' %}
{% for post in posts %}
< div >
< h2 > {{ post.title }} </ h2 >
< p > {{ post.body } } </ p >
</ div >
{% endfor %}
- 喂给 json 标签
{% load caller_tags %}
{% call 'api:blog-list' as 'posts' %}
{{ posts | json_script :"posts-data" }}
<脚本>
函数get_json (节点){
变量el =文档。getElementById (节点);
返回JSON 。解析(el.textContent || el.innerText );_ _ _
}
var posts = get_json ( "posts-data" );
控制台。日志(帖子);
</脚本>
json_script
此标签将反向移植 django >= 2.1json_script过滤器,该过滤器将 Python 对象安全地输出为 JSON,包装在<script>标签中,可与 JavaScript 一起使用。
例子
和
value = {'hello': 'world'}
和
{{ value|json_script:"hello-data" }}
将输出
<script id="hello-data" type="application/json">{"hello": "world"}</script>
并且可以使用
function get_json(name) {
var el = document.getElementById(name);
return JSON.parse(el.textContent || el.innerText);
}
var data = get_json("hello-data");
console.log(data);
变化
开发者
- 在init中导出 utils.call ,所以可以
from caller import call
0.2.1
- 修复 VERSION 导入错误
0.2.0
- 从模板标签中提取通用代码
0.1.5
- 正确的 url 取消引用 arg 参数
- 可以在模板标签参数中使用模板过滤器
0.1.4
- 在被调用的视图中显示引发的异常,而不是通用的
0.1.3
- 总是需要
as 'varname' - 能够按照文档使用 args 或 kwargs 进行 urlconf
- 更新文档
0.1.1 - 0.1.2
- 更新文档
0.1.0
- 初始发行
项目详情
关
django_rest_caller -0.2.2-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | a462a417c22f0776cfb6f44da5215befadd224de46d2034886e36e69d06ac845 |
|
| MD5 | 49ee555e446951e65f2d4748e77e9ddb |
|
| 布莱克2-256 | 7df7eb3ae4d33d3b1f0adabb1549df72768f82ba42edcc8e48edc2c71a34a211 |