热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

模板层之标签、自定义模板语法、母版(模版)的继承与导入、模型层前期准备知识点、ORM常用关键字

今日内容概要模板层之标签if判断{%if条件1%}#条件1成立Hello!#执行{%elif条件2%}#条件1不成立条件2成立Hi!


今日内容概要


模板层之标签


if判断

{% if 条件1 %} #条件1成立

Hello!

#执行
{% elif 条件2 %} #条件1不成立 条件2成立

Hi!

#执行
{% else %} #条件1条件2都不成立

Bye!

#执行
{% endif %}

for循环

{% for k in d1 %}

{{ k }}


{% endfor %}

循环打印字典里的key

关键字:forloop

image


结合使用

{% for k in d1 %}
{% if forloop.first %}

这是我的第一次循环 {{ k }}


{% elif forloop.last %}

这是我的最后一次循环 {{ k }}


{% else %}

这是中间循环 {{ k }}


{% endif %}
{% endfor %}

image


关键字:empty (检测数据是否为空 支持for循环 里面却没有数据值的 )

{% for k in t1 %}
{% empty %}

你给我传的是空的


{% endfor %}

image


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 %}
{{ H }} #复杂数据获取后需要经常使用 可以起别名
{% 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文件名字

{{ i|myadd:1 }}



自定义标签

@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('

  • 第%s个
  • '%i)
    return locals()
    {% load mytags %}
    {% mymenu 20%}

    image


    模(母)板的继承与导入


    模板的继承

    多个页面有很多相似的地方 我们可以采取下列方式
    方式1: 传统的复制粘贴
    方式2:模板的继承
    1.在模板中使用block挂顶子板以后可以修改的区域
    {% block 区域名称(随便) %}
    {% endblock %}

    2.子板继承模板
    {% extends 'home。html' %}
    {% block 区域名称 %}
    子板自己的内容
    {% endblock %}

    ps:模板中至少应该有三个区域
    页面内容区、css样式区、js代码区


    image

    image


    子板也可以继续使用模板的内容

    {{ block.super}}
    可以连续要

    image


    模板的导入

    新建一个不是一个完整的页面 单独封装
    将某个html的部分提前写好 之后很多html页面都想使用就可以导入
    {% include 'myfrom.html'%}

    模型层之ORM常见关键字


    1.自带的sqlite3数据库对视键字段不够敏感 有时会展示错乱

    auto_now_add 创建数据自动获取当前时间 后续不人为i操作的话不会修改
    auto——now 每次操作数据都会自动更新当前数据

    2.单独测试django某个功能层

    默认不允许单独测试某个py文件

    测试环境搭建:

    测试环境1:pycharm提供的python console

    image

    测试环境2:自己搭建(自带的test或者自己建一个py文件)
    1.拷贝manage.py前四行
    2.自己在加两行
    import django
    django.setup()

    3.django orm底层还是sql语句 我们可以查看

    如果我们手上是一个QuerySet对象 那么可以直接点query查看sql语句
    如果想查看orm底层的sql语句也可以在配置文件中添加日志记录

    orm常用关键字


    1.create()

    image


    2.filter()

    image


    3.first() last()

    image


    4.update()

    image


    5.delete()

    image


    6.all()

    image


    7.values()

    image


    8.values_list()

    image


    9.distinct()

    image


    10.order_by()

    image


    11.get()

    image


    12.exclude()

    image


    13.reverse()

    image


    14.count()

    image


    15.exists()

    image



  • 推荐阅读
    • PHP中元素的计量单位是什么? ... [详细]
    • 深入解析 Django 中用户模型的自定义方法与技巧 ... [详细]
    • 高效批量文件重命名软件
      开发了一款基于Python的高效批量文件重命名软件,并集成了wxWidgets图形用户界面,使用cxfreeze将其打包为独立的可执行文件(exe)。该工具适用于需要频繁处理大量文件的用户,能够显著提高文件管理效率。详细使用说明包含在软件压缩包内。开发环境为Python 2.7和wxWidgets 3.0,运行环境要求兼容Windows系统。 ... [详细]
    • 在 HihoCoder 1505 中,题目要求从给定的 n 个数中选取两对数,使这两对数的和相等。如果直接对所有可能的组合进行遍历,时间复杂度将达到 O(n^4),因此需要考虑优化选择过程。通过使用哈希表或其他高效的数据结构,可以显著降低时间复杂度,从而提高算法的效率。具体实现中,可以通过预处理和存储中间结果来减少重复计算,进一步提升性能。 ... [详细]
    • 本文详细探讨了Java集合框架的使用方法及其性能特点。首先,通过关系图展示了集合接口之间的层次结构,如`Collection`接口作为对象集合的基础,其下分为`List`、`Set`和`Queue`等子接口。其中,`List`接口支持按插入顺序保存元素且允许重复,而`Set`接口则确保元素唯一性。此外,文章还深入分析了不同集合类在实际应用中的性能表现,为开发者选择合适的集合类型提供了参考依据。 ... [详细]
    • 题目描述非常吸引人。每颗星星可以通过其在窗口的左下角和右上角位置构建两条扫描线,从而将问题转化为区间增减和求最大值的操作。需要注意的是,位于边界的星星不应计入结果,因此在处理时应分别对左右边界进行适当的增减调整。此外,利用线段树和离散化技术可以显著提高算法效率,确保在大规模数据下的性能表现。 ... [详细]
    • 本项目在Java Maven框架下,利用POI库实现了Excel数据的高效导入与导出功能。通过优化数据处理流程,提升了数据操作的性能和稳定性。项目已发布至GitHub,当前最新版本为0.0.5。该项目不仅适用于小型应用,也可扩展用于大型企业级系统,提供了灵活的数据管理解决方案。GitHub地址:https://github.com/83945105/holygrail,Maven坐标:`com.github.83945105:holygrail:0.0.5`。 ... [详细]
    • Python学习:环境配置与安装指南
      Python作为一种跨平台的编程语言,适用于Windows、Linux和macOS等多种操作系统。为了确保本地已成功安装Python,用户可以通过终端或命令行界面输入`python`或`python3`命令进行验证。此外,建议使用虚拟环境管理工具如`venv`或`conda`,以便更好地隔离不同项目依赖,提高开发效率。 ... [详细]
    • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
    • 计算 n 叉树中各节点子树的叶节点数量分析 ... [详细]
    • 在探讨如何高效处理大规模数据报表的分页展示之前,首先需要明确导致报表加载缓慢的主要原因。通常情况下,这主要是由于两个方面:一是查询条件过于宽泛,使得数据库返回的结果集包含数百万甚至更多的记录;二是前端渲染性能不足,无法高效处理大量数据。为了优化这一过程,可以从以下几个方面入手:优化查询条件,减少不必要的数据返回;采用分页查询技术,每次仅加载所需的数据;利用缓存机制,减少对数据库的频繁访问;提升前端渲染效率,使用虚拟滚动等技术提高用户体验。 ... [详细]
    • 在《PHP应用性能优化实战指南:从理论到实践的全面解析》一文中,作者分享了一次实际的PHP应用优化经验。文章回顾了先前进行的一次优化项目,指出即使系统运行时间较长后出现的各种问题和性能瓶颈,通过采用一些通用的优化策略仍然能够有效解决。文中不仅详细阐述了优化的具体步骤和方法,还结合实例分析了优化前后的性能对比,为读者提供了宝贵的参考和借鉴。 ... [详细]
    • 开发心得:深入探讨Servlet、Dubbo与MyBatis中的责任链模式应用
      开发心得:深入探讨Servlet、Dubbo与MyBatis中的责任链模式应用 ... [详细]
    • 本文首先对信息漏洞的基础知识进行了概述,重点介绍了几种常见的信息泄露途径。具体包括目录遍历、PHPINFO信息泄露以及备份文件的不当下载。其中,备份文件下载涉及网站源代码、`.bak`文件、Vim缓存文件和`DS_Store`文件等。目录遍历漏洞的详细分析为后续深入研究奠定了基础。 ... [详细]
    • 如何利用Python脚本实现钉钉自动化考勤打卡
      本文详细探讨了利用Python脚本实现钉钉自动化考勤打卡的方法。通过具体实例操作,解决了很多用户在实际应用中遇到的难题,帮助读者高效掌握这一实用技能。 ... [详细]
    author-avatar
    菜蕻的薇笑2602929033
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有