当前位置: 首页 > news >正文

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, redirect

def login(request):
	return render(request, "login.html")

3.3 urls.py

from django.urls import path

from app01 import views

urlpatterns = [
    path('login/', views.login),
]

相关文章:

  • mpp解码详解
  • 如何修改MinIO Share时的URL
  • 【索引】激光SLAM优质博客-专栏-博主索引
  • 518抽奖软件,可从Excel~Word~Pdf~网页导入名单
  • mybarisplus插件(分页与乐观锁)
  • 基于”Python+”多技术融合在蒸散发与植被总初级生产力估算中的实践应用
  • 【Linux】jdk、tomcat、MySQL环境搭建的配置安装,Linux更改后端端口
  • 视频汇聚平台EasyCVR分发的流如何进行token鉴权?具体步骤是什么?
  • ES6中Set集合
  • 打造智慧矿山-触觉智能软通动力强强联合,助力矿鸿生态
  • Azure云工作站上做Machine Learning模型开发 - 全流程演示
  • 【MedusaSTears】正则表达式搜索心得
  • C# TabControl控件设置多行属性multiline为true后切换页签出现空白
  • 生产级 React 框架介绍
  • lambda表达式 - c++11
  • 机器学习-特征选择:如何使用互信息特征选择挑选出最佳特征?
  • ES6中的class类
  • NLP之多循环神经网络情感分析
  • 生物标志物发现中的无偏数据分析策略
  • MATLAB | 万圣节来画个简单的可爱鬼叭!
  • 重庆网站建设吧/企业管理软件
  • wordpress 调试模式/seo外包公司是啥
  • 深圳网站制作易捷网络/steam交易链接在哪看
  • 网站logo怎么做才清晰/北京aso优化
  • 昆山做网站找文博/济南做网站建设的公司
  • 网站开发企业/百度快照关键词推广