模板层之标签、自定义模板语法、母版(模版)的继承与导入、模型层前期准备知识点、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上测试.不过该数据库是小型的,在有 ...
随机推荐
- el-cascader组件根据最后一级向上找到父级并设置默认值
vue + elementUI项目中,el-cascader级联选择器使用频率非常高,一些基本使用方法可以参考elementUI官方文档,本文主要研究当接口只返回最后一级id时,如何向上找出所有父级数 ...
- 知识图谱-生物信息学-医学顶刊论文(Bioinformatics-2021)-MUFFIN:用于DDI预测的多尺度特征融合
2.(2021.3.15)Bioinformatics-MUFFIN:用于DDI预测的多尺度特征融合 论文标题: MUFFIN: multi-scale feature fusion for drug ...
- python深拷贝、浅拷贝
.copy() 浅拷贝 如上图 定义列表A指向一个元素,列表A里面嵌套两层列表分布指向两个元素,定义列表B,列表B=A,列表C浅拷贝列表A 从图上可以看出,列表A和列表B指向的是同一个列表元素,而 ...
- 11.-ORM-基本操作-创建数据
一.ORM-操作 基本操作包括增删改查,即(CRUD)操作 CRUD是指在做计算处理时增加(create).读取查询(read).更新(update).删除(delete) ORM CRUD 核心 - ...
- Java安全之Tomcat6 Filter内存马
Java安全之Tomcat6 Filter内存马 回顾Tomcat8打法 先回顾下之前Tomcat789的打法 这里先抛开 7 8之间的区别, 在8中,最后add到filterchain的都是一个fi ...
- JS 学习笔记(一)常用的字符串去重方法
要求:从输入框中输入一串字符,按回车后输出去重后的字符串 方法一: <body> <input type="text" id="input" ...
- 第2-1-4章 SpringBoot整合FastDFS文件存储服务
目录 5 SpringBoot整合 5.1 操作步骤 5.2 项目依赖 5.3 客户端开发 5.3.1 FastDFS配置 5.3.2 FastDFS配置类 5.3.3 文件工具类 5.3.4 文件上 ...
- Git 分支管理策略汇总
原文链接: Git 分支管理策略 最近,团队新入职了一些小伙伴,在开发过程中,他们问我 Git 分支是如何管理的,以及应该怎么提交代码? 我大概说了一些规则,但仔细想来,好像也并没有形成一个清晰规范的 ...
- MobaXterm/Xshell快速命令宏配置
背景:使用MobaXterm或者Xshell连接远程服务器时,添加常用的命令宏一键执行,能提高效率节约时间. 使用方法: MobaXterm: 1)左边菜单栏->Macros->Recor ...
- 云原生之旅 - 13)基于 Github Action 的自动化流水线
前言 GItHub Actions是一个持续集成和持续交付的平台,能够让你自动化你的编译.测试和部署流程.GitHub 提供 Linux.Windows 和 macOS 虚拟机来运行您的工作流程,或者 ...