templateTag调用urlconf并将其负载存储到模板上下文中

django-rest-caller的Python项目详细描述


django rest呼叫者

用于调用urlconf视图终结点的简单django templatetag。

限制

  • 它仅适用于get方法
  • 它不处理没有主体的请求
  • 它不能很好地处理需要登录的视图(它假设调用方处理访问端点所需的所有内容)
  • 它假设端点返回一个json

安装

使用pip安装

    $ python3 -m pip install django-rest-caller

caller.apps.CallerConfig添加到INSTALLED_APPS

INSTALLED_APPS=[...'caller.apps.CallerConfig',...]

用法

呼叫

在模板中加载templateTag

{%loadcaller_tags%}

并使用call标记作为

{%call'urlconf'arg1=42arg2='X'withparam1='1'param2='2'as'object_name'%}

{%call'urlconf'42'X'withparam1='1'param2='2'as'object_name'%}
  • 'urlconf' arg1=42 arg2='X'这是常用的{%url%}参数(请记住:使用args参数列表或kwargs参数,而不是两者都使用)
  • param1='1' param2='2'这些参数将被转换为get querystring
  • as 'object_name'将调用的对象存储到object\u name对象中。它可以是字符串或变量名。

所以被调用的url相当于

{%url'urlconf'arg1=42arg2='X'%}?param1=1&param2=2

call将把结果json对象注入到模板上下文中,这样您就可以

  • 用作上下文对象
{%loadcaller_tags%}{%call'api:blog-list'as'posts'%}{%forpostinposts%}<div><h2>{{post.title}}</h2><p>{{post.body}}</p></div>{%endfor%}
  • 输入到json标记
{%loadcaller_tags%}{%call'api:blog-list'as'posts'%}{{posts|json_script:"posts-data"}}<script>functionget_json(node){varel=document.getElementById(node);returnJSON.parse(el.textContent||el.innerText);}varposts=get_json("posts-data");console.log(posts);</script>

json脚本

此标记将反向传输django>;=2.1^{}筛选器, 它将python对象安全地输出为json,包装在<script>标记中,可以与javascript一起使用。

示例

使用

value={'hello':'world'}

以及

{{value|json_script:"hello-data"}}

将输出

<scriptid="hello-data"type="application/json">{"hello":"world"}</script>

可使用

functionget_json(name){varel=document.getElementById(name);returnJSON.parse(el.textContent||el.innerText);}vardata=get_json("hello-data");console.log(data);

更改

0.2.1

  • 修复版本导入错误

0.2.0

  • 从templateTag中提取泛型代码

0.1.5

  • 正确的url unquote arg参数
  • 可以在templateTag参数中使用templateFilters

0.1.4

  • 在调用视图中显示引发的异常,而不是常规视图

0.1.3

  • 始终需要as 'varname'
  • 能够在urlconf中使用args或kwargs,如文档所述
  • 更新文档

0.1.1-0.1.2

  • 更新文档

0.1.0

  • 初始版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Java中为上传的文件设计强制的文件夹结构   java我如何在下面的代码中解决这个>错误HTTP Status 404   java如何在方面字段Lucene上添加分页   java My 安卓应用程序在尝试10次后崩溃   java“找不到Spring NamespaceHandler”错误   连接到Dynamodb时发生java AWS lambda错误   过程的价值。JAVA中的exitValue()   eclipse vscode java正在尝试设置项目   JavaEclipse不再自动在javadocs中添加标签   java找不到LoggerFactory类   在Java中实现延迟   设置onClickListener时的java NullPointerException   用jsoup解析HTML:Android和Java的区别