Python Django 之模板继承详解(extends)

文章目录

  • 1 概述
    • 1.1 目的
    • 1.2 标签:block、extends
    • 1.3 目录结构
  • 2 templates 目录
    • 2.1 base.html:父页面
    • 2.2 login.html:子页面
  • 3 其它代码
    • 3.1 settings.py
    • 3.2 views.py
    • 3.3 urls.py

1 概述

1.1 目的

  • 模板继承 和 类继承 的目的是一样的,都是为了提高代码的复用

1.2 标签:block、extends

# 父 Html 中,block:定义语句块,供 子页面使用
{% block xx %}{% endblock %}# 子 Html 中,extends:继承父页面
{% extends "xx.html" %}

1.3 目录结构

在这里插入图片描述

2 templates 目录

2.1 base.html:父页面

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>{% block title %} 基础页面 {% endblock %}</title>{% block css %} {% endblock %}
</head>
<body><a href="https://www.baidu.com/"> 百度一下 </a>{% block content %} {% endblock %}{% block js %} {% endblock %}
</body>
</html>

2.2 login.html:子页面

{% extends "base.html" %}{% block title %}登录首页
{% endblock %}{% block css %}<style>p {color: red}</style>
{% endblock %}{% block content %}<p>姓名:<input type="text" placeholder="姓名"></p><p>密码:<input type="text" placeholder="密码"></p>
{% endblock %}{% block js %}<script>alert('欢迎登录')</script>
{% endblock %}

登录效果:
在这里插入图片描述

3 其它代码

3.1 settings.py

TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates',# 模板的位置'DIRS': [os.path.join(BASE_DIR, 'templates')],'APP_DIRS': True,'OPTIONS': {'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},},
]

3.2 views.py

from django.shortcuts import render, HttpResponse, redirectdef login(request):return render(request, "login.html")

3.3 urls.py

from django.urls import pathfrom app01 import viewsurlpatterns = [path('login/', views.login),
]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/128069.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣:148. 排序链表(Python3)

题目&#xff1a; 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 示例&#xff1a; 示例 1&a…

【m98】接收udp包到变为CopyOnWriteBuffer的rtp包及call模块传递的过程

RtpTransport::OnReadPacket ice和Dtls 传输的创建及1个简单的SFU转发实例 实例生动的再现了这一过程: 对于m98的代码,进行走读,大体了解到类似的过程: \src\pc\rtp_transport.cc 收到的data指针和长度len 直接构造为 rtc::CopyOnWriteBuffer 向下传递:“ rtc::CopyOnWrit…

【深度学习】AUTOMATIC1111 / stable-diffusion-webui docker

代码&#xff1a;https://github.com/AUTOMATIC1111/stable-diffusion-webui/ CUDA 11.8 制作了一个镜像&#xff0c;可以直接开启stable diffusion的web ui 服务。 确定自己的显卡支持CUDA11.8&#xff0c;启动此镜像方式&#xff1a; docker run -it --networkhost --gpu…

vite vue3打包时出现TS类型错误解决最快速解决方案

快速解决看这里或者直接到 解决 packge.json中将build的vue-tsc命令删除 问题描述 在执行 npm build时报错 node_modules/.pnpm/element-plus2.3.4_vue3.3.7/node_modules/element-plus/es/components/tabs/index.d.ts:106:14106 readonly stretch: boolean;~~~~~~~The …

Go语言集成开发环境(IDE):GoLand 2023中文

GoLand 2023是一款由JetBrains开发的现代化、功能丰富的Go语言集成开发环境&#xff08;IDE&#xff09;。它提供了智能代码提示和自动完成、强大的内置调试器以及代码重构工具&#xff0c;帮助开发者提高编码效率并确保代码质量。GoLand 2023还支持多种版本控制系统&#xff0…

opencv第一个例子

目的 这是用用QTopencv实现的一个完整的展示图片的例子&#xff0c;包括了项目的配置文件&#xff0c;完整的代码&#xff0c;以用做初次学习opencv用。 代码 工程文件&#xff1a; QT core guigreaterThan(QT_MAJOR_VERSION, 4): QT widgetsTARGET openCv1 TEMPL…

不同目录下的文件读取方式

//文件目录与JsonToJava.class处于同级目录 Reader reader new InputStreamReader(JsonToJava.class.getResourceAsStream("js/Server2.json"), "UTF-8"); //文件目录与JsonToJava.class处于不同级目录&#xff0c;JsonToJava.class的文件目录层级比/js…

在Ubuntu上安装Redis并学习使用get、set和keys命令

目录 安装Redis切换到root用户搜索redis相关软件包安装redis修改配置文件重启服务器使用redis客户端连接服务器 get与set命令keys 安装Redis 我们在Ubuntu20.04上进行Redis的安装 切换到root用户 使用su命令&#xff1a; 在终端中&#xff0c;输入su并按回车键。然后输入roo…

[ABC294Ex] K-Coloring

题目传送门 引 属于一眼题,不看时间限制 8 s 8s 8s 容易被诈骗 解法 简单容斥 大概 式子就是 ∑ ( − 1 ) M ∗ K ∣ S ∣ \sum(-1)^{M}*K^{|S|} ∑(−1)M∗K∣S∣ , M M M 为边集的大小&#xff0c; ∣ S ∣ |S| ∣S∣ 为联通块的数量 那么我们就有 空间复杂度&#…

第16期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练 Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大型语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以…

软件模拟IIC的全面笔记(已调通)

[toc] lib_i2c_simulation /** Author: Haiyichen* Date: 2023-09-21 16:16:16* LastEditors: Haiyichen* LastEditTime: 2023-10-31 18:01:10* Description: Personal notes of i2c-simulation*/i2c基础 通讯流程 协议 除了文字解释&#xff0c;有用wavedrom简单画了一些各…

C++设计模式_24_Visitor 访问器

Visitor 访问器也是属于“行为变化”模式。 文章目录 1. 动机( Motivation)2. 代码演示Visitor 访问器3. 模式定义4. 结构(Structure)5. 要点总结6. 其他参考1. 动机( Motivation) 在软件构建过程中,由于需求的改变,某些类层次结构中常常需要增加新的行为(方法),如果直接在基…

【Linux】开发工具——vim多模式编辑器的入土设置sudoers白名单

个人主页点击直达&#xff1a;小白不是程序媛 Linux系列专栏&#xff1a;Linux被操作记 目录 前言&#xff1a; 基本概念 vim基本操作 [正常模式]切换至[插入模式] [插入模式]切换至[正常模式] [正常模式]切换至[末行模式] 三种模式的切换关系图 vim命令模式命令集 进…

微信小程序-授权登录(手机号码)

1、WXBizDataCrypt.js-下载地址 2、UNIAPP代码 <template> <view class"work-container"> <view class"login"> <view class"content"> <button class"button_wx&q…

数据结构之栈的实现

&#x1d649;&#x1d65e;&#x1d658;&#x1d65a;!!&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦ &#x1f44f;&#x1f3fb;‧✧̣̥̇: Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - &#xff1a;来于“云”的“羽球人”…

J2EE项目部署与发布(Linux版本)->jdktomcat安装,MySQL安装,后端接口部署,linux单体项目前端部署

jdk&tomcat安装MySQL安装后端接口部署linux单体项目前端部署 1.jdk&tomcat安装 上传jdk、tomcat安装包 解压两个工具包 #解压tomcat tar -zxvf apache-tomcat-8.5.20.tar.gz #解压jdk tar -zxvf jdk-8u151-linux-x64.tar.gz 配置并且测试jdk安装 #配置环境变量 vim /e…

文件夹批量重命名:如何利用上级目录给多个文件夹进行高效重命名

在文件管理中&#xff0c;我们经常需要处理大量的文件和文件夹。其中&#xff0c;文件名过长或混乱的问题经常让我们感到困扰。这不仅影响了我们的工作效率&#xff0c;还可能导致一些错误。为了解决这个问题&#xff0c;我们可以用云炫文件管理器将“上级目录”批量重命名文件…

模拟select通信过程

文章目录 模拟select通信过程 但有客户端正在处理数据,新增一台客户端请求建立连接当N台服务器都处于通信状态,其中有一台由于客户端断开处在G处,如果它立即重新请求连接,请分析它的过程当N台服务器都处于通信状态,其中有一台由于客户端断开处在G处,如果它立即重新请求连接, 并…

网络安全中的渗透测试主要有几个方面

渗透测试中主要有软件测试和渗透测试。 1、测试对象不同   软件测试&#xff1a;主要测试的是程序、数据、文档。 渗透测试&#xff1a;对象主要为网络设备、主机操作系统、数据库系统和应用系统。 2、测试内容不同   软件测试&#xff1a;主要工作内容是验证和确认&#x…

如何将word格式的文档转换成markdown格式的文档

如何将word格式的文档转换成markdown格式的文档 前言 A. 介绍Markdown和Word格式文档 什么是Markdown&#xff1f; Markdown是一种轻量级标记语言&#xff0c;旨在简化文本格式化和排版的过程。它以纯文本形式编写&#xff0c;通过使用简单的标记语法&#xff0c;使文档更具…