模板层之标签、自定义模板语法、母版(模版)的继承与导入、模型层前期准备知识点、ORM常用关键字
今日内容概要
模板层之标签
if判断
{% if 条件1 %} #条件1成立
<p>Hello!</p> #执行
{% elif 条件2 %} #条件1不成立 条件2成立
<p>Hi!<p> #执行
{% else %} #条件1条件2都不成立
<p>Bye!</p> #执行
{% endif %}
for循环
{% for k in d1 %}
<p>{{ k }}</p>
{% endfor %}
循环打印字典里的key
关键字:forloop

结合使用
{% for k in d1 %}
{% if forloop.first %}
<p>这是我的第一次循环 {{ k }}</p>
{% elif forloop.last %}
<p>这是我的最后一次循环 {{ k }}</p>
{% else %}
<p>这是中间循环 {{ k }}</p>
{% endif %}
{% endfor %}

关键字:empty (检测数据是否为空 支持for循环 里面却没有数据值的 )
{% for k in t1 %}
{% empty %}
<p>你给我传的是空的</p>
{% endfor %}

django模板语法取值操作>>>:只支持句点符
句点符据可以点索引也可以点键
d1 = {'name': 'jason', 'age': 18,'hobby':['read','music',{'a':111,"b":222}]}
#拿111
{{ d1.hobby.2.a }}
{% with d1.hobby.2.a as H %}
<a href="">{{ H }}</a> #复杂数据获取后需要经常使用 可以起别名
{% endwith %}
自定义过滤器、标签及inclusion_tag(了解)
'''
必须要先完成下列的三步走战略
1.在应用下创建一个templatetags的目录
2.在上述目录下创建任意名称的py文件
3.在上述文件内先编写两行固定代码
from django import template
register = template.Library()
'''
自定义过滤器
@register.filter(name='myadd')
def func1(a,b): #最大只能接收两个参数
return a*b
要先加载过滤器
{% load xxx %} #自己创建的py文件名字
<p>{{ i|myadd:1 }}</p>
自定义标签
@register.simple_tag(name='mytag')
def func2(a,b,c) #参数没有限制
return f'{a}-{b}-{c}'
{% load xxx %}
{% mytag 'jason' 'kevin' 'joyce' %}
自定义inclusion_tag(局部html代码)
@register.inclusion_tag('menu.html',name='mymenu')
def func3(n):
html=[]
for i in range(n):
html.append('<li>第%s个<li>'%i)
return locals()
{% load mytags %}
{% mymenu 20%}

模(母)板的继承与导入
模板的继承
多个页面有很多相似的地方 我们可以采取下列方式
方式1: 传统的复制粘贴
方式2:模板的继承
1.在模板中使用block挂顶子板以后可以修改的区域
{% block 区域名称(随便) %}
{% endblock %}
2.子板继承模板
{% extends 'home。html' %}
{% block 区域名称 %}
子板自己的内容
{% endblock %}
ps:模板中至少应该有三个区域
页面内容区、css样式区、js代码区


子板也可以继续使用模板的内容
{{ block.super}}
可以连续要

模板的导入
新建一个不是一个完整的页面 单独封装
将某个html的部分提前写好 之后很多html页面都想使用就可以导入
{% include 'myfrom.html'%}
模型层之ORM常见关键字
1.自带的sqlite3数据库对视键字段不够敏感 有时会展示错乱
auto_now_add 创建数据自动获取当前时间 后续不人为i操作的话不会修改
auto——now 每次操作数据都会自动更新当前数据
2.单独测试django某个功能层
默认不允许单独测试某个py文件
测试环境搭建:
测试环境1:pycharm提供的python console

测试环境2:自己搭建(自带的test或者自己建一个py文件)
1.拷贝manage.py前四行
2.自己在加两行
import django
django.setup()
3.django orm底层还是sql语句 我们可以查看
如果我们手上是一个QuerySet对象 那么可以直接点query查看sql语句
如果想查看orm底层的sql语句也可以在配置文件中添加日志记录
orm常用关键字
1.create()

2.filter()

3.first() last()

4.update()

5.delete()

6.all()

7.values()

8.values_list()

9.distinct()

10.order_by()

11.get()

12.exclude()

13.reverse()

14.count()

15.exists()

模板层之标签、自定义模板语法、母版(模版)的继承与导入、模型层前期准备知识点、ORM常用关键字的更多相关文章
- 模板层之标签 自定义过滤器及标签 模板的继承与导入 模型层之前期准备 ORM常用关键字
目录 模板层之标签 if判断 for循环 自定义过滤器.标签及inclusion_tag(了解) 前期三步骤 自定义过滤器(最大只能接收两个参数) 自定义标签(参数没有限制) 自定义inclusion ...
- 12月14日内容总结——模板层之标签、自定义模板语法、母版(模版)的继承与导入、模型层前期准备知识点、ORM常用关键字
目录 一.模板层之标签 分支结构if for循环 with(定义变量名) 二.自定义过滤器.标签及inclusion_tag(了解) 三.母版(模板)的继承与导入(重要) 四.模型层之前期准备 模型层 ...
- 模板层语法、模板层之标签、模板的继承与导入、模型层之ORM常见关键字
模板层语法.模板层之标签.模板的继承与导入.模型层之ORM常见关键字 一.模板层语法 1.模板语法的传值 urls代码: path('modal/', views.modal) views代码: de ...
- Django——模板层(template)(模板语法、自定义模板过滤器及标签、模板继承)
前言:当我们想在页面上给客户端返回一个当前时间,一些初学者可能会很自然的想到用占位符,字符串拼接来达到我们想要的效果,但是这样做会有一个问题,HTML被直接硬编码在 Python代码之中. 1 2 3 ...
- django 模板语言之 filter 自定义模板
可以自己写python函数放在模板语言里用 这种方法是django里面的 filter {{ item.event_start|date:"Y-m-d H:i:s"}} {{ bi ...
- django 模板语言之 simple_tag 自定义模板
自定义函数 simple_tag a. app项目下创建templatetags目录 b. 创建任意xxoo.py文件 用做自定义py函数 c. 创建template对象 register 在函数或者 ...
- python之路49 模板层标签 自定义过滤器 模板继承、模型层准备、ORM部分操作
模板层之标签 {% if 条件1(可以自己写也可以是用传递过来的数据) %} <p>周三了 周三了</p> {% elif 条件2(可以自己写也可以用传递过来的数据) %} & ...
- xcode5 自定义模板
经过一番周折,终于在xcode5上实现了一个简单的自定义模板,在项目中集成NSLogger库(增强NSLog的功能,https://github.com/fpillet/NSLogger)——新建项目 ...
- Django模型层ORM学习笔记
一. 铺垫 1. 连接Django自带数据库sqlite3 之前提到过Django自带一个叫做sqlite3的小型数据库,当我们做本地测试时,可以直接在sqlite3上测试.不过该数据库是小型的,在有 ...
随机推荐
- .NET性能系列文章一:.NET7的性能改进
这些方法在.NET7中变得更快 照片来自 CHUTTERSNAP 的 Unsplash 欢迎阅读.NET性能系列的第一章.这一系列的特点是对.NET世界中许多不同的主题进行研究.比较性能.正如标题所说 ...
- 22.通用视图GenericAPIView、属性和方法
generics.ListCreateAPIView #源码 class ListCreateAPIView(mixins.ListModelMixin, mixins.CreateModelMixi ...
- java学习之EL和JSTL
0x00前言 EL和JSTL都是JSP的内容的拓展,都是开发的一些东西,稍微学习记录一下,避免以后忘记 0x01EL 0x1基本用法 概念:Expression language 表达式语言 作用:替 ...
- KubeEdge快速上手与社区贡献实践
1.KubeEdge的架构特点与优势 持久化 云端组件,EdgeController,设备抽象API,CSI Driver,Admission WebHook 边缘组件,EdgeHub,MetaMan ...
- 封装适用于CentOS7的MySQL离线包
1 构建一个centos7.6.1810的docker镜像,用于下载MySQL+xtrabackup所需安装包 7.6.1810的docker镜像,低版本最小安装,会尽可能把所需的包拉齐. Docke ...
- PostgreSQL常用操作合辑:时间日期、系统函数、正则表达式、库表导入导出、元数据查询、自定义函数、常用案例
〇.参考地址 1.pg官方文档 http://www.postgres.cn/docs/9.6/index.html 2.腾讯云仓pg文档 https://cloud.tencent.com/docu ...
- 直接快速下载NLTK数据
直接快速下载NLTK数据 直接下载NLTK的数据速度很慢,这里提供NLTK数据集,直接下载即可.或者选择下列百度云下载: 链接:https://pan.baidu.com/s/17ZgkoQeMosW ...
- vba + ado +sql 连接数据库的常用操作方式
vba + ado +sql 连接Access.MySQL.Oracle Private Sub Connection_DBA() '********************************* ...
- Django测试脚本-单表操作(增删改查)-必知必会13条-神奇的双下划线
目录 一:Django测试脚本 1.测试环境准备 2.tests.py 3.models.py 4.切换MySQL数据库 二:单表操作 1.pk关键字与get关键字 2.增 3.删 4.修 三:必知必 ...
- 【深入浅出SpringCloud原理及实战】「SpringCloud-Alibaba系列」微服务模式搭建系统基础架构实战指南及版本规划踩坑分析
Spring Cloud Alibaba Nacos Discovery Spring Boot 应用程序在服务注册与发现方面提供和 Nacos 的无缝集成. 通过一些简单的注解,您可以快速来注册一个 ...