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 来包含父模板的块中定义的内容
Django:(06)Django模版的更多相关文章
- Django 06 Django模型基础1(ORM简介、数据库连接配置、模型的创建与映射、数据的增删改查)
Django 06 Django模型基础1(ORM简介.数据库连接配置.模型的创建与映射.数据的增删改查) 一.ORM系统 #django模型映射关系 #模型类-----数据表 #类属性-----表字 ...
- 06: Django Admin
目录:Django其他篇 01:Django基础篇 02:Django进阶篇 03:Django数据库操作--->Model 04: Form 验证用户数据 & 生成html 05:Mo ...
- 06.Django基础五之django模型层(二)多表操作
一 创建模型 表和表之间的关系 一对一.多对一.多对多 ,用book表和publish表自己来想想关系,想想里面的操作,加外键约束和不加外键约束的区别,一对一的外键约束是在一对多的约束上加上唯一约束. ...
- django: django rest framework 分页
django: django rest framework 分页 2018年06月22日 13:41:43 linux_player_c 阅读数:665更多 所属专栏: django 实战 版权声 ...
- Django settings — Django 1.6 documentation
Django settings - Django 1.6 documentation export DJANGO_SETTINGS_MODULE=mysite.settings django-admi ...
- Python之路【第二十三篇】:Django 初探--Django的开发服务器及创建数据库(笔记)
Django 初探--Django的开发服务器及创建数据库(笔记) 1.Django的开发服务器 Django框架中包含一些轻量级的web应用服务器,开发web项目时不需再对其配置服务器,Django ...
- Django 初探--Django的开发服务器及创建数据库(笔记)
1.Django的开发服务器 Django框架中包含一些轻量级的web应用服务器,开发web项目时不需再对其配置服务器,Django提供的内置服务器可以在代码修改时自动加载,从而实现网站的迅速开发. ...
- Django之django模型层二多表操作
一 创建模型 表和表之间的关系 一对一.多对一.多对多 ,用book表和publish表自己来想想关系,想想里面的操作,加外键约束和不加外键约束的区别,一对一的外键约束是在一对多的约束上加上唯一约束. ...
- Django之Django终端打印SQL语句
Django之Django终端打印SQL语句 在Django项目中,settings.py文件中,在最后添加如下代码即可实现在Django终端打印SQL语句. LOGGING = { 'version ...
- Django 框架 django的请求生命周期
概述 首先我们知道HTTP请求及服务端响应中传输的所有数据都是字符串,同时http请求是无状态的,可以通过session和cookie来辅助. 浏览器通过ip和端口及路由方式访问服务端. 在Djang ...
随机推荐
- #2002 Cannot log in to the MySQL server, PHPMyAdmin/MySQL
改完会可能会出现1045的错误 在phpStudy中,其他选项菜单——mysql工具——重置密码,即可
- tkinter_战队数据查询系统
# 导入tkinter模块 import tkinter from tkinter import ttk # 导入库 import pymysql # 创建主窗口对象 root = tkinter.T ...
- FastDFS-基本介绍
1. 什么是FastDFS FastDFS是用c语言编写的一款开源的分布式文件系统.FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用Fas ...
- python集合以及编码初识
一.集合 set 集合是无序的,天然能去重,是可变的.例:s = {1,2,3,4,5} s = {} s1 = {1} print(type(s)) # 空{}就是字典 print(type(s1 ...
- 优雅的退出和调用服务器close() 方法
在开发中,创建这种“友好的”退出方式的一种方法就是,将服务器的 while 循环放在一个 try-except 语句中的 except 子句中,并监控 EOFError 或 KeyboardInter ...
- C语言学习系列(一)开门首篇
一.特辑 此次是我自己的学习之路,和大家一起分享(我现在是做Java),途中遇到什么问题大家也可以提出来一起讨论一起进步: 主要参考教程是菜鸟教程上面的C语言教程,以及大学课本C语言教程-第四版(谭浩 ...
- Maven+Docker 部署
Maven+Docker 部署 安装jdk8镜像 docker pull openjdk:8-jdk-alpine maven插件推送方式 修改/etc/docker/daemon.json文件,加入 ...
- flutter布局-1-column
1.mainAxisAlignment:主轴布局方式,column主轴方向是垂直的方向 mainaxis.png 默认值:MainAxisAlignment.start: start ,沿着主轴方 ...
- MySQL 几种性能测试的工具使用
近期由于要比较mysql及其分支mariadb, percona的性能,了解了几个这方面的工具,包括:mysqlslap sysbench tpcc-mysql,做一个整理,备忘,分享 1.mysql ...
- 离线语音Snowboy热词唤醒+ 树莓派语音交互实现开关灯
离线语音Snowboy热词唤醒 语音识别现在有非常广泛的应用场景,如手机的语音助手,智能音响(小爱,叮咚,天猫精灵...)等. 语音识别一般包含三个阶段:热词唤醒,语音录入,识别和逻辑控制阶段. 热词 ...