今日内容概要

模板层之标签

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常用关键字的更多相关文章

  1. 模板层之标签 自定义过滤器及标签 模板的继承与导入 模型层之前期准备 ORM常用关键字

    目录 模板层之标签 if判断 for循环 自定义过滤器.标签及inclusion_tag(了解) 前期三步骤 自定义过滤器(最大只能接收两个参数) 自定义标签(参数没有限制) 自定义inclusion ...

  2. 12月14日内容总结——模板层之标签、自定义模板语法、母版(模版)的继承与导入、模型层前期准备知识点、ORM常用关键字

    目录 一.模板层之标签 分支结构if for循环 with(定义变量名) 二.自定义过滤器.标签及inclusion_tag(了解) 三.母版(模板)的继承与导入(重要) 四.模型层之前期准备 模型层 ...

  3. 模板层语法、模板层之标签、模板的继承与导入、模型层之ORM常见关键字

    模板层语法.模板层之标签.模板的继承与导入.模型层之ORM常见关键字 一.模板层语法 1.模板语法的传值 urls代码: path('modal/', views.modal) views代码: de ...

  4. Django——模板层(template)(模板语法、自定义模板过滤器及标签、模板继承)

    前言:当我们想在页面上给客户端返回一个当前时间,一些初学者可能会很自然的想到用占位符,字符串拼接来达到我们想要的效果,但是这样做会有一个问题,HTML被直接硬编码在 Python代码之中. 1 2 3 ...

  5. django 模板语言之 filter 自定义模板

    可以自己写python函数放在模板语言里用 这种方法是django里面的 filter {{ item.event_start|date:"Y-m-d H:i:s"}} {{ bi ...

  6. django 模板语言之 simple_tag 自定义模板

    自定义函数 simple_tag a. app项目下创建templatetags目录 b. 创建任意xxoo.py文件 用做自定义py函数 c. 创建template对象 register 在函数或者 ...

  7. python之路49 模板层标签 自定义过滤器 模板继承、模型层准备、ORM部分操作

    模板层之标签 {% if 条件1(可以自己写也可以是用传递过来的数据) %} <p>周三了 周三了</p> {% elif 条件2(可以自己写也可以用传递过来的数据) %} & ...

  8. xcode5 自定义模板

    经过一番周折,终于在xcode5上实现了一个简单的自定义模板,在项目中集成NSLogger库(增强NSLog的功能,https://github.com/fpillet/NSLogger)——新建项目 ...

  9. Django模型层ORM学习笔记

    一. 铺垫 1. 连接Django自带数据库sqlite3 之前提到过Django自带一个叫做sqlite3的小型数据库,当我们做本地测试时,可以直接在sqlite3上测试.不过该数据库是小型的,在有 ...

随机推荐

  1. el-cascader组件根据最后一级向上找到父级并设置默认值

    vue + elementUI项目中,el-cascader级联选择器使用频率非常高,一些基本使用方法可以参考elementUI官方文档,本文主要研究当接口只返回最后一级id时,如何向上找出所有父级数 ...

  2. 知识图谱-生物信息学-医学顶刊论文(Bioinformatics-2021)-MUFFIN:用于DDI预测的多尺度特征融合

    2.(2021.3.15)Bioinformatics-MUFFIN:用于DDI预测的多尺度特征融合 论文标题: MUFFIN: multi-scale feature fusion for drug ...

  3. python深拷贝、浅拷贝

      .copy() 浅拷贝 如上图 定义列表A指向一个元素,列表A里面嵌套两层列表分布指向两个元素,定义列表B,列表B=A,列表C浅拷贝列表A 从图上可以看出,列表A和列表B指向的是同一个列表元素,而 ...

  4. 11.-ORM-基本操作-创建数据

    一.ORM-操作 基本操作包括增删改查,即(CRUD)操作 CRUD是指在做计算处理时增加(create).读取查询(read).更新(update).删除(delete) ORM CRUD 核心 - ...

  5. Java安全之Tomcat6 Filter内存马

    Java安全之Tomcat6 Filter内存马 回顾Tomcat8打法 先回顾下之前Tomcat789的打法 这里先抛开 7 8之间的区别, 在8中,最后add到filterchain的都是一个fi ...

  6. JS 学习笔记(一)常用的字符串去重方法

    要求:从输入框中输入一串字符,按回车后输出去重后的字符串 方法一: <body> <input type="text" id="input" ...

  7. 第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 文件上 ...

  8. Git 分支管理策略汇总

    原文链接: Git 分支管理策略 最近,团队新入职了一些小伙伴,在开发过程中,他们问我 Git 分支是如何管理的,以及应该怎么提交代码? 我大概说了一些规则,但仔细想来,好像也并没有形成一个清晰规范的 ...

  9. MobaXterm/Xshell快速命令宏配置

    背景:使用MobaXterm或者Xshell连接远程服务器时,添加常用的命令宏一键执行,能提高效率节约时间. 使用方法: MobaXterm: 1)左边菜单栏->Macros->Recor ...

  10. 云原生之旅 - 13)基于 Github Action 的自动化流水线

    前言 GItHub Actions是一个持续集成和持续交付的平台,能够让你自动化你的编译.测试和部署流程.GitHub 提供 Linux.Windows 和 macOS 虚拟机来运行您的工作流程,或者 ...