Django框架模版继承与组件使用

模版继承(母版继承)

模版继承可以创建一个基本的“骨架”模版,它包含您站点中的全部元素,并且可以定义能够被子模版覆盖的 blocks 。
<!--设置一个共同的HTML模版(一个HTML文件,base.html)-->
<!--其他的html文档来继承这个公共的母版-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>home</title>
    <!--设置block方法,block中包含的内容,在其他html页面继承后可以进行修改,-->
    <!--block可以设置多个,可以在页面的任意位置,包括css,js内容-->
    {% block style %}
    <style>
        h1{
            background-color: red;
        }
    </style>
    <!--申明block方法的结束-->
    {% endblock %}
</head>
<body>
    <h1>你好世界</h1>
    {% block connect %}
    <h1>修改的内容</h1>
    {% endblock %}
</body>
</html>
***************************************************
<!--继承页面的写法-->
<!--申明继承于那个页面,必须放在开头的位置-->
{% extends 'base.html' %}
<!--使用block来申明要修改的内容,block后面的变量必须和模板中的一一对应,指定要修改的部分-->
<!--页面中写和母版中名字相同的block块,从而来显示自定义的内容-->
{% block style %}
<style>
    h1{
        background-color: blue;
    }
</style>
{% endblock %}

{% block connect %}
    <!--block.super可以显示继承的母版中的block中的内容-->
    {{ block.super }}
    <h1>修改后的内容</h1>
{% endblock %}

组件

//可以将常用的页面内容如导航条,页尾信息等组件保存在单独的文件中,然后在需要使用的地方,文件的任意位置按如下语法导入即可。
//设置一个组件,就是新建一个html文件,然后在这个文件中封装组件的内容
//组件的意思类似于python中的函数的,在其他地方进行引用
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .c1{
            background-color: red;
        }
    </style>
</head>
<body>
    <div class="c1">
        <span>个人中心</span>
        <span>首页</span>
        <span>注册</span>
        <span>登陆</span>
    </div>
</body>
</html>
#**********************************************************
//在其他的html中使用这个组件,
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    //使用include方法来引用组件,后面写的是导入那个组件,导入后放到当前引入的位置
    //导入组件会导入所有的内容,包括css样式,js代码等,都是放在body标签中,不会影响当签页面的效果
    {% include 'index.html' %}
    <h1>新项目首页</h1>
</body>
</html>
#**********************************************************
//模版继承和组价的区别:
    模版是一个公共模版,是一个底板,其他页面只是修改他的内容,用的还是他的结构,
    组件类似一个插件,封装了一些功能,别的页面只是引入使用这些功能,组件中的页面效果,不会影响当前页面中的设置的效果
//www.jq22.com中有一些封装好的插件可以直接使用

原文地址:https://www.cnblogs.com/luckinlee/p/11622260.html

时间: 2024-11-09 16:39:31

Django框架模版继承与组件使用的相关文章

Django框架基础之Form组件

服务端假设所有用户提交的数据都是不可信任的,所以Django框架内置了form组件来验证用户提交的信息 form组件的2大功能:       1 验证(显示错误信息)       2 保留用户上次输入的信息                  -- 可以生成html标签应用: class A_Form(Form): 字段=fields.字段类型(默认参数: required=True, widget=widgets.插件(attrs={})) 常用字段:Charfield,RegexField,I

Django框架进阶7 forms组件(pycharm内置测试环境Python Console), cookie与session操作

forms组件 写一个注册页面 获取用户输入的用户名和密码 用户点击注册发送到后端做用户名密码的校验 用户名中不能包含金瓶mei 不符合社会主义核心价值观 密码不能为空 你个DSB,密码怎么能为空 1.手写获取用户输入的前端页面代码 渲染页面 2.后端获取用户数据并做合法性校验 校验数据 3.将校验之后的结果渲染到前端页面 展示信息 不用forms组件代码: app01/views.py from django.shortcuts import render,HttpResponse # Cre

Django框架模版渲染与过滤器使用

模版渲染 语法 #{{变量名}} HTML页面中使用 用后台返回的变量来替换HTML中的字段 #获取后台返回的name变量,把他放到标签中 <h1>{{ name }}</h1> #{% 处理逻辑相关的 %} 在前段用逻辑处理后态返回的数据,比如for循环,if判断,with取别名等python代码逻辑 <ul> #获取后带返回的列表lst,循环列表,生成多个li标签 {% for i in lst %} <li>{{ i }}</li> #声明

Django框架 之 modelform组件

浏览目录 创建mldelform 添加记录 编辑记录 Django框架中的modelform组件 通过名字我们可以看出来,这个组件的功能就是把model和form组合起来. 下面我们来看一个例子: 比如我们的数据库中有这样一张学生表,字段有姓名,年龄,爱好,邮箱,电话,住址,注册时间等等一大堆信息,现在让你写一个创建学生的页面,你的后台应该怎么写呢?首先我们会在前端一个一个罗列出这些字段,让用户去填写,然后我们从后天一个一个接收用户的输入,创建一个新的学生对象,保存其实,重点不是这些,而是合法性

Django框架(八)—— 模板层:模板导入、模板继承、静态文件

模板导入.继承.静态文件 一.模板导入 要复用一个组件,可以将该组件写在一个文件中,在使用的时候导入即可 在模板中使用 1.语法 {% include '模板名字' %} 2.使用 ad.html页面 <div class="adv"> <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-t

在Python的Django框架中加载模版的方法

在Python的Django框架中加载模版的方法 为了减少模板加载调用过程及模板本身的冗余代码,Django 提供了一种使用方便且功能强大的 API ,用于从磁盘中加载模板, 要使用此模板加载API,首先你必须将模板的保存位置告诉框架. 设置的保存文件就是settings.py. 如果你是一步步跟随我们学习过来的,马上打开你的settings.py配置文件,找到TEMPLATE_DIRS这项设置吧. 它的默认设置是一个空元组(tuple),加上一些自动生成的注释. TEMPLATE_DIRS =

第十九章 Django框架——Admin组件

第十九章 Django框架--Admin组件 一.创建超级用户 二.配置后台管理路由 三.注册admin后台管理页面 四.配置admin后台管理页面 一.创建超级用户 python manage.py createsuperuser 二.配置后台管理路由 url(r'^admin/', include(admin.site.urls)) #默认配置 三.注册admin后台管理页面 admin.py from django.contrib import admin from api import

Django框架(六) Django之模板继承

模版导入和继承 模版导入 语法:{% include '模版名称' %} 如:{% include 'adv.html' %} adv.html <div class="adv"> <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title">Panel title<

Django框架下的增强分页组件

本文通过文章同步功能推送至博客园,显示排版可能会有所错误,请见谅! 描述:Django框架内置了分页功能,但其只能满足简单需求,难以实现复杂功能. 实现代码: #!/usr/bin/env python3 # -*- coding:utf-8 -*- __auth__ = 'Song Wei' from django.utils.safestring import mark_safe from math import ceil class Paginator: '''自定制分页功能,支持设置标签