四、jinja2模板深入

  1. Django通过渲染模板来生成动态页面。但是在使用之前需要先指定模板文件的位置



    BACKEND可以指定后端模板引擎,此处使用jinja2,在项目根目录下创建template文件夹,将模板文件都放入该文件夹下即可

  2. jinja2语法初步
    在jinja2中,有三种语法

    • {{}}变量取值
    • {% %}控制结构
    • {# #}注释

    变量取值相当于占位符,将传递过来的变量名称放入其中,随后渲染为值
    {{ var }}
    控制结构和python中控制结构类似

    {% if bool %}
    do something
    {% elif bool2 %}
    do others
    {% else %}
    do 
    {% endif %}
    
    {% for post in posts %}
    <p>post.body</p>
    {% empty %}
    <p>没有文章</p>
    {% endfor %}
    
  3. jinja2中的过滤器
    过滤器是jinja2中的一些内置函数,用来对输入的变量内容进行过滤,更改
    {{ var | filter }}
    常用的filter如下

  4. jinja2中的宏
    宏就像是C语言中的宏定义,将一段代码定义为宏,再次使用时直接使用定义的宏,就行使用该段代码一样,还可以传递参数。宏的行为就像函数一样。jinja2中使用macro关键字定义宏

    {% macro input(name,age=20) %}
    <input type='text' name='{{name}}' value='{{age}}'> 
    {% endmacro %}
    <p>{{input('xiaozhi')}}</p>
    <p>{{input('xiaohong',21}}</p>
    
  5. jinja2中的继承
    jinja2中使用block与endblock来定义一个块,块中的内容在子模板中可以被重写。子模板使用extends关键字来继承一个模板,并且在当前模板中通过block声明相同的块来覆盖重写父模板中的块,可以使用super()来引用父块中的内容

  6. 在模板中使用静态文件
    网页中有时候需要放置一些图片之类的文件,需要在模板中加载。在这之前,setting文件中需要先指明静态文件的位置



    随后在需要使用静态文件的模板中


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 介绍 Jinja是基于python的模板引擎,功能比较类似于于PHP的smarty,J2ee的Freemarker...
    ZhouLang阅读 12,508评论 0 2
  • 模板: 在之前的章节中,视图函数只是直接返回文本,而在实际生产环境中其实很少这样用,因为实际的页面大多是带有样式和...
    帅气的Lucky阅读 5,879评论 0 1
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 10,050评论 0 5
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,282评论 19 139
  • 为了表达晚辈对长辈的尊敬和孝心,我们这,虽然平日并没有过生日的习惯,但只要年至六十九岁就一定是...
    近者悦远者来阅读 4,053评论 2 2

友情链接更多精彩内容