最浅显易懂的Django系列教程(12)-模版结构优化

Django模型优化 在models.py的class中定义 class meta"""根据需求确定3个字段:用户名,签到时间,签到内容""""""通过魔法方法去自定义返回对象"""# verbose_name_plural是复数别名。设置数据模型的别名尽量使用复数别名verbose_name_plural = "签到用户"刷新管理后台,看到模型已经更新成自定义的别名修改app.py,添加单数别名verbose_name = "签到应用" # app使用单数别名刷新后,看到app name已更新。 阅读详情

模版结构优化

引入模版

有时候一些代码是在许多模版中都用到的。如果我们每次都重复的去拷贝代码那肯定不符合项目的规范。一般我们可以把这些重复性的代码抽取出来,就类似于Python中的函数一样,以后想要使用这些代码的时候,就通过include包含进来。这个标签就是include。示例代码如下:

# header.html
<p>我是header</p>

# footer.html
<p>我是footer</p>

# main.html
{% include 'header.html' %}
<p>我是main内容</p>
{% include 'footer.html' %}

include标签寻找路径的方式。也是跟render渲染模板的函数是一样的。

默认include标签包含模版,会自动的使用主模版中的上下文,也即可以自动的使用主模版中的变量。如果想传入一些其他的参数,那么可以使用with语句。示例代码如下:

# header.html
<p>用户名:{{ username }}</p>

# main.html
{% include "header.html" with username='huangyong' %}

模板继承:

在前端页面开发中。有些代码是需要重复使用的。这种情况可以使用include标签来实现。也可以使用另外一个比较强大的方式来实现,那就是模版继承。模版继承类似于Python中的类,在父类中可以先定义好一些变量和方法,然后在子类中实现。模版继承也可以在父模版中先定义好一些子模版需要用到的代码,然后子模版直接继承就可以了。并且因为子模版肯定有自己的不同代码,因此可以在父模版中定义一个block接口,然后子模版再去实现。以下是父模版的代码:

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <link rel="stylesheet" href="{% static 'style.css' %}" />
    <title>{% block title %}我的站点{% endblock %}</title>
</head>

<body>
    <div id="sidebar">
        {% block sidebar %}
        <ul>
            <li><a href="/">首页</a></li>
            <li><a href="/blog/">博客</a></li>
        </ul>
        {% endblock %}
    </div>
    <div id="content">
        {% block content %}{% endblock %}
    </div>
</body>
</html>

这个模版,我们取名叫做base.html,定义好一个简单的html骨架,然后定义好两个block接口,让子模版来根据具体需求来实现。子模板然后通过extends标签来实现,示例代码如下:

{% extends "base.html" %}

{% block title %}博客列表{% endblock %}

{% block content %}
    {% for entry in blog_entries %}
        <h2>{{ entry.title }}</h2>
        <p>{{ entry.body }}</p>
    {% endfor %}
{% endblock %}

需要注意的是:extends标签必须放在模版的第一行。
子模板中的代码必须放在block中,否则将不会被渲染。
如果在某个block中需要使用父模版的内容,那么可以使用{{block.super}}来继承。比如上例,{%block title%},如果想要使用父模版的title,那么可以在子模版的title block中使用{{ block.super }}来实现。

在定义block的时候,除了在block开始的地方定义这个block的名字,还可以在block结束的时候定义名字。比如{% block title %}{% endblock title %}。这在大型模版中显得尤其有用,能让你快速的看到block包含在哪里。

看文章不过瘾?还有免费的视频教程,让你学起来更轻松Django零基础到项目实战

MAVEN教程-第一篇:MAVEN基础入门 MAVEN基础入门摘要 Maven是Java项目自动化构建工具,核心解决依赖管理(自动下载JAR包)、标准化构建流程(统一目录结构)和插件扩展问题。安装需配置环境变量(MAVEN_HOME),通过mvn -v验证。使用archetype:generate命令快速生成项目,标准结构包含src/main/java(主代码)和pom.xml(配置依赖/插件)。关键操作:mvn compile编译代码,mvn exec:java运行主类。POM文件定义项目元数据(如groupId)、依赖(如JUnit)和构建插件( 阅读详情

相关推荐

高空抛物监控系统:基于YOLOv8的轨迹追踪与可视化系统

本文详细介绍了一种基于YOLOv8深度学习模型的高空抛物监控系统,该系统能够实时检测并追踪高层建筑抛掷物的运动轨迹。文章包含完整的系统设计思路、算法实现细节、数据集构建方法以及基于PyQt5的可视化界面开发过程。我们提供了完整的Python实现代码,并讨论了系统的性能优化策略和实际部署考量。此外,我们还推荐了几个公开可用的高空抛物数据集,并详细分析了系统的应用前景和技术挑战。

YOLO 425

django 模板 渲染js中数据

当你使用pycharm作为蟒蛇的开发工具的时候,如果你使用的是django模板语言,并将一个数组传递到前端js中就像这样: var list2 = {{ list1 }}; 这种情况下,pycharm会报错 ,所以你可能会加上一对引号在外面,防止报红,就像这样: var list2 = '{{ list1 }}'; 但这样你会发现,在循环打印这个数组的时候,就会变成一个字符串,所...

阿良 3344

tikhonov.zip_L曲线正则化_Tikhonov 正则化_Tikhonov正则化_tikhonov_正则化

压缩包里包含了:正则化方法,L曲线,奇异值分解等,希望对大家有帮助

django开发系列模板结构优化

django开发系列模板结构优化 include方法: 有些模版代码是重复的。因此可以单独抽取出来,以后哪里需要用到,就直接使用include进来就可以了。 如果想要在include子模版的时候,传递一些参数,那么可以使用with xxx=xxx的形式。示例代码如下: {% include 'header.html' with username='zhiliao' %} 模版继承: 在前端...

zsddragon的博客 179

Django-bootstrap3|在Django中快速使用Bootstrap模版

、点击上方“早起Python”,关注并“星标”每日接收原创Python干货!前言关于如何快速基于Django使用别人写好的模版搭建网站之前已经有详细讲过,一般我们在Django中使用Boo...

早起Python 1316

Django模版

子数列推论、函数极限定义

Major_S的博客 379

Pycharm开发Django模版结构优化

模版结构优化 引入模版 有时候一些代码是在许多模版中都用到的。如果我们每次都重复的去拷贝代码那肯定不符合项目的规范。一般我们可以把这些重复性的代码抽取出来,就类似于Python中的函数一样,以后想要使用这些代码的时候,就通过include包含进来。这个标签就是include。示例代码如下: header.html 我是header footer.html 我是footer main.html {% include ‘header.html’ %} 我是main内容 {% include 'footer.ht

qq_17584941的博客 111

我的Django学习笔记(4)模版引用和模版继承、自定义过滤器

模版结构优化: 1、模版引用 include: 将一段公共性的代码写入一个HTML文件,在其他HTML文件中可以使用include标签来读取公共代码 如果想要在子模版中添加参数(模版中所需要的参数),则需要手动传递: {% include '.html' with var=value %} base.html中的代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U

hide_in_darkness的博客 294

Django模版结构优化和加载静态文件

引入模版 有时候一些代码是在许多模版中都用到的。如果我们每次都重复的去拷贝代码那肯定不符合项目的规范。一般我们可以把这些重复性的代码抽取出来,就类似于Python中的函数一样,以后想要使用这些代码的时候,就通过include包含进来。这个标签就是include。示例代码如下: header.html 我是header footer.html 我是footer main.html {% includ...

qq_42239520的博客 267

Django系列教程(28)——性能优化大全

如果按例4操作,我们会将每篇文章对象的全部信息都提取出来载入到内存中,不仅花费更多时间查询,还会大量占用内存,而后只用了title这一个字段,这是完全没有必要的。缓存是一类可以更快的读取数据的介质统称,也指其它可以加快数据读取的存储方式。比如当你的数据库有100万篇文章时,每页即使展示100篇,也需要1万页展示给你的用户,这是完全没有必要的。其中响应时间(服务器从接收用户请求,处理该请求并返回结果所需的总的时间)通常是重要的指标,因为过长的响应时间会让用户厌倦等待,转投其它网站或APP。

彩蛋在每篇文章的最后名片 1046

Django框架学习——4—(DTL模板标签、模版常用过滤器、模版结构优化、加载静态文件)

1、DTL模板标签 在for循环中,DTL提供了一些变量可供使用。 forloop.counter: 当前循环的下标。以1作为起始值。 forloop.counter0: 当前循环的下标。以0作为起始值。 forloop.revcounter: 当前循环的反向下标值。比如列表有5个元素,那么第一次遍历这个属性是等于5,第二次是4,以此类推。并且是以1作为后一个元素的下标。 forloop.revcounter0: 类似于forloop.revcounter。不同的是后一个元素的下标是从0

weixin_42118531的博客 610

Django 基础知识详细图文教程 3-Django 路由定义

3、Django 基础知识详细图文教程 3-Django 路由定义

测试开发 311

从零创建一个 Django 项目

防止污染全局环境init接口与视图函数关联即将SQL语句直接放到raw()中。

2601_96206525的博客 255

1.django -项目创建

django-admin startapp app #创建一个名称为app的应用。第四:进入到项目目录,然后运行: python manage.py runserver。把对应的应用APP,在settings.py中进行注册。

Aa123456789_55的博客 145

Python Web 安全——Django/Flask 常见漏洞审计深度剖析

本文将从实用的白盒审计视角出发,先给出一张完整的"高危 Sink 点速查表",再逐个剖析 Django 和 Flask 在真实攻防中高频出现的漏洞模式——每个案例都配上可复现的 PoC 思路与修复方案。

数据知道的博客 426

2.django - 项目结构模板语法

本质上是django专属在HTML中的一些占位符。获取key和value值. N3.items。获取所有value值. N3.values。

Aa123456789_55的博客 142

零基础入门python33:Django QuerySet——从商品查询到数据库 SQL

删除被商品使用的分类会触发。这不是异常写错了,而是主动阻止破坏数据关系。

a1250467048的博客 208

【玩转全栈】----Django模板的继承

模板继承的好处-------Django模板的继承通过定义一个基础模板(如包含页面头部、导航栏和底部的整体布局),允许其他模板在此基础上扩展和定制,从而实现代码复用和统一管理。此外,模板继承使页面结构清晰,便于团队协作。模板继承的语法规则---------首先需要定义一个模板html文件,模板文件中的一切都会被其他html文件继承,在与其他html文件不同的位置加上: {% block content %}{% endblock %}可以理解为占位符,content 是该处占位符的名字,可以修改。

2601_96206649的博客 177

告别Excel管IP!自研轻量IP自动化运维治理工具 | Django实现扫描·巡检·资产全闭环

这套工具本质上是面向中小团队运维场景的轻量解决方案,没有复杂的架构和冗余的功能,核心就是解决IP管理里头疼的「盘点慢、发现晚、台账乱」问题。平时用空闲时间一点点打磨出来的工具,自己用着顺手,也希望能给同样被IP管理困扰的朋友提供一点思路。大家平时做IP管理都用什么工具?有什么好的玩法?欢迎评论区一起交流~这是源码地址:https://download.csdn.net/download/qq_16766705/93345775。

qq_16766705的博客 323

Django 基础知识详细图文教程 4-Django 视图定义与使用

4、Django 基础知识详细图文教程 4-Django 视图定义与使用

测试开发 194

Django的手机数据分析与可视化

Django的手机数据分析与可视化系统 摘 要 本系统基于Django框架、HTML和MySQL数据库技术,构建了一个全面的手机数据分析与可视化平台。大屏内容丰富,包括品牌市场份额分布、手机价格区间分布、各维度评分分布、热门机型Top10、内存容量分布以及品牌评分与价格分析等多个模块。通过这些模块,用户可以直观地了解手机市场的整体趋势、各品牌的市场表现、手机价格分布情况、用户评分分布以及热门机型的详细信息。系统采用了先进的可视化技术,将复杂的数据以图表的形式呈现,使得数据更加易于理解和分析。 在管理功能方

weixin_41915110的博客 281
上一篇: 最浅显易懂的Django系列教程(11)-自定义过滤器
下一篇: 最浅显易懂的Django系列教程(13)-加载静态文件
jspython
博客等级 码龄6年 61粉丝 109原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值