美文网首页
Flask jinja2模板

Flask jinja2模板

作者: Dozing | 来源:发表于2018-10-22 23:39 被阅读47次

Python Flask JIJIA2模板渲染

A.Flask渲染Jinja2模板和模板传参

  1. 如何渲染模板:
    • Flask模板放在templates文件夹下面
    • flask中导入render_template函数
    • 在视图函数中,使用render_template函数,渲染模板。注意:只需要填写模板的名字,不需要填写templates这个文件夹的路径
  2. 模板传参:
    • 如果只有一个或者少数参数,直接在render_template函数中添加关键字参数就可以了
    • 如果有多个参数的时候,那么可以先把所有的参数放在字典中,然后在render_template中,使用两个星号**,把字典转换成关键字参数传递进去,这样的代码更方便管理和使用
  3. 在模板中,如果要使用一个变量,语法是:{{params}}
  4. 访问模型中的属性或者是字典,可以通过{{params.property}}的形式,或者是使用{{params['age']}}的形式

B.控制语句

所有的控制语句都是放在{%...%}中,并且有一个语句{% end xxx%}来进行结束,Jinja中常用的控制语句有if/for ...in...

  1. if判断

    if语句和python中的类似,可以使用>,<,<=,>=,==,!=来进行判断,也可以通过and,or,not,()来进行逻辑合并操作

    {% if xxx %}
    {% else %}
    {% end if %}
    
  1. for循环遍历列表和字典

    • 字典的遍历,语法和python一样,可以使用items(),keys(),values(),iteritems(),iterkeys(),itervalues()

      {% for k,v in user.items()%}
      <p>{{k}}:{{v}}</p>
      {% endfor %}
      
    • 字典的遍历,语法和python一样

      {% for website in websites %}
      <p>{{website}}</p>
      {% endfor %}
      

C.过滤器

  1. 介绍与语法:

    • 介绍:过滤器可以处理变量,把原始的变量经过处理后是再展示出来,作用的对象是变量。

    • 语法:

      {{avatar|default('xxx')}}
      
      1. default过滤器:如果当前变量不存在,这时候可以指定默认值
      2. length过滤器,求列表或者字符串或者字典或者元组的长度

过滤器其实本身就是一个函数,只不过是放在模板当中使用而已

D.继承与使用block

  1. 继承作用和语法:

    • 作用:可以把一些公共的代码放在父模板中,避免每个模板写同样的代码。

    • 语法:

      {%extends 'base.html'%}
      # extends 指令声明这个模板衍生自base.html
      

    2.block实现:

  • 作用:可以让子模板实现一些自己的需求,父模板需要提前定义好接口。
  • 注意点:子模板中的代码,必须要放在block块中。

E.URL链接和加载静态文件

1. url链接:使用`url_for(视图函数名称)`可以反转成URL

2. 静态文件,flask会从`static`文件夹中开始寻找,所以不需要再写`static`这个路径了

3. 可以加载`css`文件,`js`,还有`image`文件

   ```html
   <!--第一个:加载css文件-->
   <link rel="stylesheet" href="{{url_for('static',filename = 'css/index.css')}}">
   <!--第二个:加载js文件-->
   <script src="{{url_for('static',filename = 'js/index.js')}}"></script>
   <!--第三个:加载image文件-->
   <img src="{{url_for('static',filename = 'image/zhiliao.png')}}" alt="">
   
   ```

相关文章

  • templates(模板)

    jinja2 Flask中使用jinja2模板引擎jinja2是由Flask作者开发,模仿Django的模板引擎 ...

  • Templates 2018-08-28

    1. jinja2 Flask中使用jinja2模板引擎 jinja2是由Flask作者开发,模仿Django的模...

  • Flask模板引擎:Jinja2常用语法整理

    摘要:Flask,Jinja2,HTML Flask模板引擎Jinja2简述 模板实质上是一个静态的包含HTML语...

  • Flask jinja2模板

    Python Flask JIJIA2模板渲染 A.Flask渲染Jinja2模板和模板传参 如何渲染模板:Fla...

  • Flask框架学习之jinja2模板

    flask渲染jinja2模板和传参: 1、如何渲染模板: 模板放在“template”文件夹下。 从flask导...

  • Jinja2 变量 过滤器 测试器

    循环变量 上下文变量 模板全局变量 Jinja2 模板全局函数 Flask 模板全局函数 Jinja2 常用过滤器...

  • Flask - 07 模板

    Flask使用Jinja2 模板,并通过render_template()函数返回模板给客户端 Flask会在te...

  • Flask

    Flask 0.Flask简介 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug ...

  • jinja2

    jinja2是Flask作者开发的一个模板系统,起初是仿django模板的一个模板引擎,为Flask提供模板支持,...

  • Flask渲染Jinja2模板和传参

    ### Flask渲染Jinja2模板和传参: 1. 如何渲染模板: * 模板放在`templates`文件夹下 ...

网友评论

      本文标题:Flask jinja2模板

      本文链接:https://www.haomeiwen.com/subject/jagnzftx.html