Day062--django--模板,母版和继承
1.MVC和MTV
- MVC
- C Controller : 逻辑的控制
- M Model : 存取数据
- V View : 信息的展示
- MTV
- M : model ORM操作
- T: Template 模板
- V: View 业务逻辑
2.变量
{{ 变量 }} 使用.来获相关属性和方法
标签 {% %}
3.过滤器
语法: {{ value|filter_name:参数 }} # 参数最多只有一个
内置过滤器
default 提供默认值
'|'左右没有空格没有空格没有空格
{{ kong|default:'nothing' }}date 日期格式化
{{ now|date:'Y-m-d H:i:s' }}settings中可配置全局的日期时间格式化
USE_L10N = False
DATETIME_FORMAT = 'Y-m-d H:i:s'
safe 不进行转义
{{ js|safe }} # 告诉Django 前面的内容是安全的,不必转义# 设置默认值
# 未定义的变量
{{ qwe|default:'nothing' }} # nothing
# 空列表
{{ empty|default:'nothing'}} # nothing # 或者在配置文件中全局配置设置默认值
settings-->TEMPLATES-->OPTIONS-->和'context_processors'同级增加
'string_if_invalid':'找不到'
此优先级比在变量中设置default高, 但是[]空列表不在此范畴,只适用于default # filesizeformat 文件大小单位转换
# 将值格式化为一个 “人类可读的” 文件尺寸 (例如 '13 KB', '4.1 MB', '102 bytes', 等等)
{{ value|filesizeformat }} # add 相加,拼接
# 可以将'1'转化成数字进行相加. 若字符串无法转数字,则进行拼接. 如果是两个列表,可以合并成1个列表
{{ num|add:'1' }}
{{ lst|add:lst2 }} # length 显示长度
{{ lst|length }}
{{ string|length }}
{{ lst|add:lst2|length }} # slice 切片
{{ lst|slice:'1:4:2' }}
{{ lst|slice:'-1:-4:-2' }}
{{ lst|first }}
{{ lst|last }}
# 截断
{{ long_str|truncatechars:9 }}
只显示9个字符,其中包括...占3位, 也就是6个字符,剩下的内容用...表示省略
自定义filter
- 定义
在APP下创建一个叫templatetags的python包; 不能变的,必须是包,名字必须是templatetags
在包中创建一个py文件 my_filters;
在py文件中写代码
from django import templateregister = template.Library() # register的名字不能改
写函数
@register.filter
def add_dsb(value, arg):
return "{}_{}".format(value, arg)给定义的函数加装饰器
@register.filter
def add_dsb(value, arg):
- 使用
在模板中使用:- 导入定义的文件
{% load my_filter %} - 使用过滤器
{{ name|add_dsb:'very_dsb' }}
- 导入定义的文件
- 定义
4.标签
{% csrf_token %}
添加在form表单中 就可以提交POST请求
5.母版和继承
- 母版
就是一个普通的HTML文本,将多个页面公共部分的内容提取出来,在页面中定义多个block块
{% block content %}
{% endblock %}- 继承
在子页面中,继承母版 {% extends 'base.html' %}
可以重新书写block块中内容 - 注意事项
{% extends 'base.html' %} 写在第一行,上面不写内容
- 要修改的 内容写在block块中,写在外面不显示
- {% extends 'base.html' %} base.html 记得带上引号,不然当做变量去查找
- 定义多个block块,一般要定义上 css和js
- 继承
6.组件
把多个页面公用的HTML代码放在一个HTML文件中 —— 》组件 nav.html
使用: {% include ‘nav.html’ %}
7.静态文件相关
{% load static %}
{% static '静态文件相对路径' %} ——》 获取到别名,跟后面的参数进行拼接
{% get_static_prefix %} ——》 获取到别名
<link rel="stylesheet" href="{% get_static_prefix %}plugins/bootstrap-3.3.7/css/bootstrap.css">
8.自定义inclusion_tag
Day062--django--模板,母版和继承的更多相关文章
- django之母版的继承
模板继承示例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- django模板中的extends和include使用方法
一.extends使用方法 首先extends也就是继承,子类继承父类的一些特性.在django模板中通过继承可以减少重复代码. 首先我们建立一个app,名字叫做hello.别忘了在settings. ...
- Django---MTV和MVC的了解,Django的模版语言变量和逻辑,常见的模板语言过滤器,自定义过滤器,CSRF了解,Django的母版(继承extends,块block,组件include,静态文件的加载load static),自定义simple_tag和inclusion_tag
Django---MTV和MVC的了解,Django的模版语言变量和逻辑,常见的模板语言过滤器,自定义过滤器,CSRF了解,Django的母版(继承extends,块block,组件include,静 ...
- Django(母版和继承)
day66 参考:http://www.cnblogs.com/liwenzhou/p/7931828.html#autoid-2-3-6 内容回顾 1. 模板系统(字符串替换) ...
- Django:母版、继承、组件、自定义标签
1.for循环应用 1.1for Variable Description forloop.counter 当前循环的索引值(从1开始) forloop.counter0 当前循环的索引值(从0开始) ...
- Django——模板层(template)(模板语法、自定义模板过滤器及标签、模板继承)
前言:当我们想在页面上给客户端返回一个当前时间,一些初学者可能会很自然的想到用占位符,字符串拼接来达到我们想要的效果,但是这样做会有一个问题,HTML被直接硬编码在 Python代码之中. 1 2 3 ...
- django模板继承
可以将每个html公共的部分做成一个基本模板,其他模板继承这个基本模板,则会拥有基本模板的所有内容. views.py from django.shortcuts import render def ...
- [py][mx]django模板继承-课程列表页
课程列表页分析 1,机构类型 2,所在地区 3.排序 学习人数 先分析下 纵观页面,页头页脚都一样. django提供了模板继承. 至少 不同页面的title 面包屑路径 content内容不一致,以 ...
- [py]django模板继承
参考 1.展示arr,d等数据类型 2.逻辑for if / url获取 3.获取内置变量 django模板继承 通过搞一个base.html 这个base.html可以包含两类 block片断 其他 ...
- Python学习---django模板继承180123
django模板继承 --20180123 a.include 模板标签 b.extend(继承)模板标签 ------include 模板标签 该标签允许在(模板中)包含其它的模板的内容. 标签的 ...
随机推荐
- 第十一课 CSS介绍与font字体 css学习1
一.CSS样式规则 1.基本结构 <html> <head> <style> h1{ color: orange; } </style> </he ...
- citrix外企,鸡鸣寺,玄武湖环跑,七牛云笔试
笔记汇总,计算机网络笔记汇总 昨天下江宁,经历了人生第一场f2f面试,外企,citrix思杰:(准备好久都英文介绍没用上sad) 全程一个半小时,最后被面试官夸是面过人中,对计算机网络理解最多的(希望 ...
- Node编码规范
编码规范 1. 缩进 采用2个空格缩进,而不是tab缩进.空格在编辑器中与字符是等宽的,而tab可能因编辑器的设置不同.2个空格会让代码看起来紧凑.明快. 2. 变量声明 永远用var声明变量,不加v ...
- DVWA 黑客攻防实战(十五) 绕过内容安全策略 Content Security Policy (CSP) Bypass
看到标题,是否有点疑惑 CPS 是什么东东.简单介绍一下就是浏览器的安全策略,如果 标签,或者是服务器中返回 HTTP 头中有 Content-Security-Policy 标签 ,浏览器会根据标签 ...
- windows已激活,但提示:windows 7 内部版本7601 此windows副本不是正版
把三个服务改为自动:
- ASP.NETMVC 分页
<div class="text-center"> <span style="display:inline-block; position:re ...
- js坚持不懈之13:JavaScript查找HTML元素的方法
1. 通过 id 查找 HTML 元素 <!DOCTYPE html> <html> <body> <p id = "intro"> ...
- maven生成项目慢解决办法
maven生成项目慢,原因:在线更新archetype-catalog.xml文件,从Apache中央仓库. 解决办法,手动下载,放到maven环境. 备用下载地址: https://files.cn ...
- 桌面远程连接阿里云服务器(windows)后丧失了双向文件复制粘贴功能的解决方案(第一条博客!)
近日应公司要求,需在windows服务器上架设一个交易中介软件. 过程之一:将软件压缩文件传到服务器上. 问题:在“运行”对话框通过输入'mstsc' 创建远程连接以后,出现本地桌面与服务器之间无法物 ...
- Linux基础学习:目录配置
Linux 目录配置标准:FHS FHS:即Filesystem Hierarchy Stabdard,文件配置标准.其主要目的是希望用户可以了解已安装软件通常放置在哪个目录下. FHS根据文件系统使 ...