最近,项目中用python实现一个自动化生成API文档的功能,再自动生成请求示例的时候卡主了,主要原因还是因为jinjia2框架使用不熟悉,折腾了半天,最后stackflow上面找到了答案

问题:

jinjia2循环中需要设置全局变量,用传统的编程语法去实现,如下:

<% set temp1 = 0 %>
{% for item in api.reqs %}...{% set tmp1 = temp1 + 1%} # 这个时候始终为1
{% endfor %}
{{temp1}} # 这个时候始值为1

循环外定义一个全局变量,循环内修改后无效,猜想:可能是每一次循环后,内存清空了,temp1始终=0

解决:

采用jinjia2里面的“空间”对象来赋值以及修改值

<% set temp1 = namespace(t1=0,t2=1) %>
{% for item in api.reqs %}...{% set temp1.t1 = temp1.t1 + 1%} {% set temp1.t2 = temp1.t2 + 1%}
{% endfor %}
{{temp1.t1}} # 这个时候会累加值
{{temp1.t1}} # 这个时候会累加值

主要还是不熟悉,并且这个语法有点坑

jinjia2模板,循环中的全局变量使用,避坑相关推荐

  1. js splice坑_JavaScript的splice()方法在for循环中使用可能会遇到的坑!!!

    在我们日常敲代码的时候,常常会用到splice()方法来删除数组中的元素(就是以截取的方式),因为它会直接对数组进行修改. 在使用splice之前,必备条件是,要先有一个数组. var arr = n ...

  2. Armadillo 线性代数库中的聚类算法避坑

    1.本文的由来 最近由于需要在C++语言编写的项目中使用高斯混合模型聚类算法,最开始是打算自己写一个的(参考的是<机器学习>,周志华著这本书),但是最后发现自己写的算法运行效率低,而且对于 ...

  3. Python坑:bool是int的子类、列表循环中的变量泄露、lambda在闭包中会保存局部变量、重用全局变量

    bool是int的子类 a = True print isinstance(a, int) print True == 1 print False == 0 运行结果: True True True ...

  4. (js)模板字符串中使用循环遍历数据:

    (js)模板字符串中使用循环遍历数据: // 数据格式 let wordList = {id: "2",question: "李四",content: [{ n ...

  5. es6模板字符串中循环遍历数据踩坑

    应该很少有这种需求,需要在模板字符串利循环遍历数据,现在框架都有自己模板语法. 我这里踩的坑是,我在模板字符串中用forEach,map遍历循环时,返回值一直是一个undefined 用for循环re ...

  6. 7、Flask实战第7天:Jinjia2模板

    Jinja2模板介绍和查找路径 在前面的章节中,视图只是直接返回文本,然而在实际生产环境中其实很少这样用,因为实际的页面大多带有样式和复杂逻辑的HTML代码,这可以让浏览器其渲染出非常漂亮的页面. 我 ...

  7. while循环中指针会自动释放吗_C++】C++常见面试题汇总_持续更新中...

    1:指针(*).引用(&).解引用(*).取地址(&).的概念和区别 概念: 指针指向一块内存,指针保存的是内存的地址:引用是变量的别名,本质是引用该变量的地址. 解引用是取指针指向的 ...

  8. 正确姿势避坑 Python 中的6个典型错误

    点击关注我哦 一篇文章带你使用正确姿势避坑 Python 中的6个典型错误 Python是一种高级的动态脚本语言.它易于使用的特性使得它非常流行,并且在最近几年得到了扩展.易用性也从易滥用开始.我们列 ...

  9. stm32怎么调用for循环内部的变量_循环中的异步amp;amp;循环中的闭包

    在这之前先要了解一下 for循环中let 和var的区别 var 是函数级作用域或者全局作用域,let是块级作用域 看一个例子     function foo() {       for (var  ...

最新文章

  1. ACM-最短路之中的一个个人的旅行——hdu2066
  2. python对操作系统的目录和文件操作
  3. 如何在J2ME中创建MIDlet
  4. [LibTorch Linux] 各版本 LibTorch 下载
  5. html5数组删除相同数据,js数组相减简单示例【删除a数组所有与b数组相同元素】...
  6. 构造avl树_浅谈AVL树,B-树,B+树
  7. 3ds Max Graphic Device Error 怎么解决(设置问题)
  8. avx2指令集对php有用吗,AVX2指令集的作用
  9. android 照片同步到iphone,简明教程教你同步安卓设备照片到iCloud照片流
  10. 百度搜索正式升级冰桶算法5.0!
  11. Efficient Deep Embedded Subspace Clustering
  12. 微服务消息传输过程中的一些问题
  13. 我从校园出来的这几年
  14. 密码学之背包加密系统(Merkle–Hellman公钥加密算法)原理
  15. 进程调度算法——C++实现 [ FCFS,SJF,HPR,HRN + 开源代码 + 详细解析 ]
  16. CSS实现页脚始终在页面底部
  17. 一本关于Symbian入门的电子图书,中文版
  18. iphone剪卡遭遇
  19. Springmvc介绍及与Mybatis整合技术详解
  20. PB控件:Graph图形控件

热门文章

  1. eclipse自动生成类图和时序图
  2. matlab降压启动,基于Matlab的笼形异步电动机降压启动分析
  3. 如何建一个小型服务器存文件,小型文件服务器
  4. Android 组件化开源app -开眼短视频(OpenEyes),面试官都被搞懵了
  5. 边缘计算Tensorflow Lite
  6. 学习欧拉phi函数的思考
  7. Circular RMQ
  8. 2022最该收藏的3类8款可视化工具,数据分析师必备
  9. 在统计学中_统计学中的几个基本概念
  10. win10系统如何恢复回收站删除文件