一、模版的使用

配置

如果是命令行创建的项目需要手动配置模版文件目录(如果是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 来包含父模板的块中定义的内容

Django:(06)Django模版的更多相关文章

  1. Django 06 Django模型基础1(ORM简介、数据库连接配置、模型的创建与映射、数据的增删改查)

    Django 06 Django模型基础1(ORM简介.数据库连接配置.模型的创建与映射.数据的增删改查) 一.ORM系统 #django模型映射关系 #模型类-----数据表 #类属性-----表字 ...

  2. 06: Django Admin

    目录:Django其他篇 01:Django基础篇 02:Django进阶篇 03:Django数据库操作--->Model 04: Form 验证用户数据 & 生成html 05:Mo ...

  3. 06.Django基础五之django模型层(二)多表操作

    一 创建模型 表和表之间的关系 一对一.多对一.多对多 ,用book表和publish表自己来想想关系,想想里面的操作,加外键约束和不加外键约束的区别,一对一的外键约束是在一对多的约束上加上唯一约束. ...

  4. django: django rest framework 分页

    django: django rest framework 分页 2018年06月22日 13:41:43 linux_player_c 阅读数:665更多 所属专栏: django 实战   版权声 ...

  5. Django settings — Django 1.6 documentation

    Django settings - Django 1.6 documentation export DJANGO_SETTINGS_MODULE=mysite.settings django-admi ...

  6. Python之路【第二十三篇】:Django 初探--Django的开发服务器及创建数据库(笔记)

    Django 初探--Django的开发服务器及创建数据库(笔记) 1.Django的开发服务器 Django框架中包含一些轻量级的web应用服务器,开发web项目时不需再对其配置服务器,Django ...

  7. Django 初探--Django的开发服务器及创建数据库(笔记)

    1.Django的开发服务器 Django框架中包含一些轻量级的web应用服务器,开发web项目时不需再对其配置服务器,Django提供的内置服务器可以在代码修改时自动加载,从而实现网站的迅速开发. ...

  8. Django之django模型层二多表操作

    一 创建模型 表和表之间的关系 一对一.多对一.多对多 ,用book表和publish表自己来想想关系,想想里面的操作,加外键约束和不加外键约束的区别,一对一的外键约束是在一对多的约束上加上唯一约束. ...

  9. Django之Django终端打印SQL语句

    Django之Django终端打印SQL语句 在Django项目中,settings.py文件中,在最后添加如下代码即可实现在Django终端打印SQL语句. LOGGING = { 'version ...

  10. Django 框架 django的请求生命周期

    概述 首先我们知道HTTP请求及服务端响应中传输的所有数据都是字符串,同时http请求是无状态的,可以通过session和cookie来辅助. 浏览器通过ip和端口及路由方式访问服务端. 在Djang ...

随机推荐

  1. #2002 Cannot log in to the MySQL server, PHPMyAdmin/MySQL

    改完会可能会出现1045的错误 在phpStudy中,其他选项菜单——mysql工具——重置密码,即可

  2. tkinter_战队数据查询系统

    # 导入tkinter模块 import tkinter from tkinter import ttk # 导入库 import pymysql # 创建主窗口对象 root = tkinter.T ...

  3. FastDFS-基本介绍

    1. 什么是FastDFS FastDFS是用c语言编写的一款开源的分布式文件系统.FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用Fas ...

  4. python集合以及编码初识

    一.集合  set 集合是无序的,天然能去重,是可变的.例:s = {1,2,3,4,5} s = {} s1 = {1} print(type(s)) # 空{}就是字典 print(type(s1 ...

  5. 优雅的退出和调用服务器close() 方法

    在开发中,创建这种“友好的”退出方式的一种方法就是,将服务器的 while 循环放在一个 try-except 语句中的 except 子句中,并监控 EOFError 或 KeyboardInter ...

  6. C语言学习系列(一)开门首篇

    一.特辑 此次是我自己的学习之路,和大家一起分享(我现在是做Java),途中遇到什么问题大家也可以提出来一起讨论一起进步: 主要参考教程是菜鸟教程上面的C语言教程,以及大学课本C语言教程-第四版(谭浩 ...

  7. Maven+Docker 部署

    Maven+Docker 部署 安装jdk8镜像 docker pull openjdk:8-jdk-alpine maven插件推送方式 修改/etc/docker/daemon.json文件,加入 ...

  8. flutter布局-1-column

    1.mainAxisAlignment:主轴布局方式,column主轴方向是垂直的方向   mainaxis.png 默认值:MainAxisAlignment.start: start ,沿着主轴方 ...

  9. MySQL 几种性能测试的工具使用

    近期由于要比较mysql及其分支mariadb, percona的性能,了解了几个这方面的工具,包括:mysqlslap sysbench tpcc-mysql,做一个整理,备忘,分享 1.mysql ...

  10. 离线语音Snowboy热词唤醒+ 树莓派语音交互实现开关灯

    离线语音Snowboy热词唤醒 语音识别现在有非常广泛的应用场景,如手机的语音助手,智能音响(小爱,叮咚,天猫精灵...)等. 语音识别一般包含三个阶段:热词唤醒,语音录入,识别和逻辑控制阶段. 热词 ...