• Django:(06)Django模版


    一、模版的使用

    配置

    如果是命令行创建的项目需要手动配置模版文件目录(如果是Pycharm创建的项目则无需配置)
    在项目根目录下创建目录templates, 用来存放模版文件
    在项目的配置文件夹settings.py里配置:

    # 指定模版文件保存到那个目录下
    TEMPLATES=[ 'DIRS':[os.path.join(BASE_DIR, 'templates')],]

    定义

    在templates目录中存放模板文件,如index.html


    渲染

    方式一: 通过render函数

    return render(request, 'index.html', context)
    • 参数1:请求对象
    • 参数2:模块路径
    • 参数3:字典数据

    方式二: 通过Template对象的render方法

    return HttpResponse( loader.get_template('index.html') 
    .render(context))

    二、模版语法

    1、模板变量

    变量规则: 变量名必须由字母、数字、下划线(不能以下划线开头)和点组成
    语法:{{变量}}
    数据类型:python内建类型或者对象
    模板变量从哪里存送进来:

    //在模板渲染的时候,通过字典的形式传入
    (return render(request, 'index.html', 字典)) //模板变量名就是这个字典里的键名

    2、模板语句

    for循环

    {% if ... %}
    逻辑1
    {% elif ... %}
    逻辑2
    {% else %}
    逻辑3
    {% endif %}


    if条件

    {% if ... %}
    逻辑1
    {% elif ... %}
    逻辑2
    {% else %}
    逻辑3
    {% endif %}


    比较运算符

    ==
    !=
    <
    >
    <=
    >=
    注意:运算符左右两侧必须有空格。


    布尔运算符

    and
    or
    not
    注意:运算符左右两侧必须有空格。


    3、过滤器

    语法:变量|过滤器:参数
    safe
    length:返回字符/元素个数
    default:data|default:'默认值'
    date: value|date:"Y年m月j日 H时i分s秒"; 格式符:Y表示年,m表示月,d表示日01,j表示日1,H表示时24,h表示时12,i表示分,s表示秒

    4、注释

    单行
    {#...#}
    
    多行
    {% comment %}
    ...
    {% endcomment %}

    5、模板继承


    父模板

    如果发现在多个模板中某些内容相同,那就可以使用block标签把这段内容定义到父模板中。

    {% block 块名称 %}
    预留区域,可以编写默认内容,也可以没有默认内容
    {% endblock %}


    子模版:

    • 继承声明: 
      {% extends "父模板路径" %}
    • 对有需要的block进行重写:
      {% block 名称 %}
      子模板的内容
      {{ block.super }} 显示父模板中block的内容
      {% endblock %}

        不用重写父模版中的所有block,如果子模版没有重写,则使用父模版定义的默认值。
        可以使用 block.super 来包含父模板的块中定义的内容

  • 相关阅读:
    十四、内部类
    十三、模板设计模式
    十二、面向对象之多态
    三、泛型
    Spring Security学习笔记
    Maven构建web项目在Eclipse中部署的几种方法
    spring如何实现定时任务
    安装jar包到本地仓库
    使用java对pdf转成tiff文件
    word文档转pdf解决修订问题
  • 原文地址:https://www.cnblogs.com/mzfly/p/9991826.html
Copyright © 2020-2023  润新知