Jinja的基础知识

介绍:Jinja2 是一个现代的,设计者友好的,仿照 Django 模板的 Python 模板语言。 它速度快,被广泛使用,并且提供了可选的沙箱模板执行环境保证安全

基本操作

  • 变量:使用{{}}包围

    <a>{{user.username}}</a>
  • 注释:注释代码块使用 {# Documents #} 来表示

  • 控制语句:使用{{% 控制流程 %}}来编写控制代码块

    {% if a %}<p>hello a</p>
    {% else %}<p>hello b</p>
    {% endif %}
  • 循环:

    • 在 Jinja 中需要同时使用循环语句和 if 语句来模拟 continue 语句的功能。

    • 可以使用 Jinja 提供的 loop 变量来模型 Python 中的 enumerate() 内置函数的功能。 loop 变量可以返回一些关于 for 循环的信息,如: 索引号。

    
    # example1{% for post in posts if post.text %}<div><h1>{{ post.title }}</h1><p>{{ post.text | safe }}</p></div>
    {% endfor %}# example2{% for post in posts %}{{ loop.index }}-{{ post.title }}
    {% endfor %}
  • 过滤器:用于处理变量代码块中的变量。过滤器与变量用管道符号( | )分割,并且也 可以用圆括号传递可选参数。多个过滤器可以链式调用,前一个过滤器的输出会被作为 后一个过滤器的输入。
    常用过滤器:http://blog.csdn.net/jmilk/article/details/53292248

    
    # 有参数{{ variable | filter_name }}# 或无参数{{ variables | filter_name(*args) }}
    
  • 宏:类似于函数,会返回一个 Jinja 模板或 HTML 字符串。其最主要的功能就是提高代码的重用性。如:

    {% macro input(name, label, value='', type='text')%}<div class="form-group"><label for"{{ name }}">{{ label }}</div><input type="{{ type }}" name="{{ name }}"value="{{ value | escape }}" class="form-control"></div>
    {% endmacro %}
    • input():是宏的名字,类似于函数名

    • (name, label, value='', type='text'):是宏的参数,类似于函数的必备参数和缺省参数

    • 调用

    {{ input('name', 'Name') }}
    • 结果
     <div class="form-group"><label for"name">Name</div><input type="text" name="name"value="" class="form-control"></div>

文章参考自:

http://blog.csdn.net/jmilk/article/details/53264049

http://docs.jinkan.org/docs/jinja2/templates.html#id7

Jinja的基础知识相关推荐

  1. 嵌入式Linux的OTA更新,基础知识和实现

    嵌入式Linux的OTA更新,基础知识和实现 OTA updates for Embedded Linux, Fundamentals and implementation 更新的需要 一旦嵌入式Li ...

  2. 计算机基础知识第十讲,计算机文化基础(第十讲)学习笔记

    计算机文化基础(第十讲)学习笔记 采样和量化PictureElement Pixel(像素)(链接: 采样的实质就是要用多少点(这个点我们叫像素)来描述一张图像,比如,一幅420x570的图像,就表示 ...

  3. 嵌入式linux编程,嵌入式Linux学习笔记 - 嵌入式Linux基础知识和开发环境的构建_Linux编程_Linux公社-Linux系统门户网站...

    注:所有内容基于友善之臂Mini2440开发板 一.嵌入式Linux开发环境的构建 嵌入式开发一般分为三个步骤: 1.编译bootloader,烧到开发板 2.编译嵌入式Linux内核,烧到开发板 3 ...

  4. 《计算机网络应用基础》模拟试卷(六),《计算机与网络应用基础知识1》模拟试卷...

    <计算机与网络应用基础知识1>模拟试卷 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 <计算机与网络应用基础知识1& ...

  5. python向量计算库教程_NumPy库入门教程:基础知识总结

    原标题:NumPy库入门教程:基础知识总结 视学算法 | 作者 知乎专栏 | 来源 numpy可以说是 Python运用于人工智能和科学计算的一个重要基础,近段时间恰好学习了numpy,pandas, ...

  6. python常用变量名_python基础知识整理

    Python Python开发 Python语言 python基础知识整理 序言:本文简单介绍python基础知识的一些重要知识点,用于总结复习,每个知识点的具体用法会在后面的博客中一一补充程序: 一 ...

  7. 计算机基础知识掌握欠缺,《计算机基础知识》实验教学改革探讨.pdf

    <计算机基础知识>实验教学改革探讨.pdf Science& TechnologyVision 科 技 视 界 科技 探·索·争鸣 计<算机基础知识>实验教学改革探讨 ...

  8. python计算wav的语谱图_Python实现电脑录音(含音频基础知识讲解)

    前言 今天开始进入近期系列文章的第一篇,如何用 Python 来实现录音功能. 在开始"造轮子"之前,个人一直强调一个观点,如果有些东西已经有了,不妨直接去 github 上搜,用 ...

  9. 计算机wrod初级考试题及答案,计算机基础知识+Word基础知识+Excel基础知识试题答案解析.doc...

    文档介绍: 计算机基础知识+ Word基础知识+ Excel基础知识 第一部分 一.单项选择题 1.世界上第一台电子数字计算机取名为(    ). A.UNIVAC    B.EDSAC    C.E ...

最新文章

  1. Linux下SVN服务器同时支持Apache的http和https及svnserve独立服务器三种模式且使用相同的访问权限账号...
  2. npm切换到淘宝镜像
  3. java程序课程总结_java课程总结
  4. SpringBoot AOP实现接口次数访问统计
  5. PHP的urlencode
  6. 用NGUI做一个计时条!
  7. 学习OpenCV,看这些!
  8. 【JEECG技术博文】JEECG国际化介绍
  9. 怎么批量在数字里加入网页_手把手教你爬取天堂网1920*1080大图片(批量下载)——理论篇
  10. 10个办法让设计小白迅速get海报设计要点!
  11. 汽车智能电气技术分析
  12. 通过 web 录制视频(摄像头)并上传
  13. syncnavigator关于win10、win8系统无法注册机进行激活的问题
  14. 三菱PLC基础知识 辅助继电器M
  15. swagger导出接口文档
  16. kz服务器速度显示,CSGO(KZ模式)服务器搭建常见问题答疑(示例代码)
  17. Turtle 画方形 画圆 画三角形
  18. CloudsBombs
  19. 无人机开发系列 Ubuntu18.04安装 含虚拟机与双系统
  20. 凉宫春日的忧郁第四章

热门文章

  1. 将虚拟主机加入到netskills.net域环境_网站建设阿里云虚拟主机、ECS服务器、企业邮箱选择购买指南...
  2. centos 卸载_CentOS「linux」学习笔记12:磁盘管理、分区挂载卸载操作
  3. python干货_python 基础干货 02
  4. android 生命周期_Android生命周期组件 Lifecycle 源码详解(一)
  5. zend optimizer php5.5,PHP_PHP5.3以上版本安装ZendOptimizer扩展,现在很多PHP程序都需要ZendOptimi - phpStudy...
  6. C++之前置自增与后置自增
  7. 标示符和关键字的总结--希望别再犯错
  8. [luoguP2331] [SCOI2005]最大子矩阵(DP)
  9. 使用junit测试用例
  10. 解决启动Biee控制台乱码问题