Django-模板继承/组件/自定义标签】的更多相关文章

本节目录 一 语法 二 变量 三 过滤器 四 标签Tags 五 模板继承 六 组件 七 自定义标签和过滤器 八 静态文件相关 一 语法   模板渲染的官方文档 关于模板渲染你只需要记两种特殊符号(语法): {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 二 变量 在Django的模板语言中按此语法使用:{{ 变量名 }}. 当模版引擎遇到一个变量,它将计算这个变量,然后用结果替换掉它本身. 变量的命名包括任何字母数字以及下划线 ("_")的组合. 变量名称中不…
一.标签tags for标签 遍历每一个元素:  写个for,然后 tab键自动生成for循环的结构,循环很基础,就这么简单的用,没有什么break之类的,复杂一些的功能,你要通过js def get(self,request): lit = ["一","二","三"] return render(request,"login.html",{"lit":lit}) views {% for foo in l…
django模板继承  --20180123 a.include 模板标签 b.extend(继承)模板标签 ------include 模板标签 该标签允许在(模板中)包含其它的模板的内容. 标签的参数是所要包含的模板名称,可以是一个变量,也可以是用单/双引号硬编码的字符串. 每当在多个模板中出现相同的代码时,就应该考虑是否要使用 {% include %} 来减少重复. ------extend(继承)模板标签 先构造一个基础框架模板,而后在其子模板中对它所包含站点公用部分和定义块进行重载.…
Django模板继承和静态文件 模板继承(extend) Django模板引擎中最强大也是最复杂的部分就是模板继承了,模板继承可以让我们创建一个基本的"骨架"模板,它可以包含网页中的全部元素,并且可以定义能够被子模板覆盖的blocks.为了容易理解模板继承,我们先写一个模板: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">…
1.前言 django模板继承的作用:模板可以用继承的方式来实现复用,减少冗余内容. 一般来说,一个网站里一般存在多个网页的头部和尾部内容都是一致的,我们就可以通过模板继承来实现复用. 父模板用于放置可重复利用的内容,子模板继承父模板的内容,并放置自己的内容. 2.父模板 标签 block...endblock: 父模板中的预留区域,该区域留给子模板填充差异性的内容,不同预留区域名字不能相同. {% block 名称1 %} 预留给子模板的区域,可以设置设置默认内容 {% endblock 名称…
课程列表页分析 1,机构类型 2,所在地区 3.排序 学习人数 先分析下 纵观页面,页头页脚都一样. django提供了模板继承. 至少 不同页面的title 面包屑路径 content内容不一致,以前总结个django模板继承 base.html(页头页脚公用, tilte content等block) ---> org-list.html(继承base, 将父block替换成自己的) 整改org-list的templates为继承模式 这里我自己写了个简单的style.css. 这里静态文件…
参考 1.展示arr,d等数据类型 2.逻辑for if / url获取 3.获取内置变量 django模板继承 通过搞一个base.html 这个base.html可以包含两类 block片断 其他html 然后index.html继承base.html 继承关系如图 代码体现template继承 关键字 - 预设片断模板- 留坑 {% block title %} 默认标题 {% endblock %} - 预包含html文件 {% include 'nav.html' %} - index…
自定义模板标签和 过滤器: 因为模板标签和过滤器只给我们提供了 这么多 无法对我们的使用造成更多的便利 ,剩下的就需要我们自己去创建新的 模板标签和过滤器了 1.在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag. 2.在app中创建templatetags模块(模块名只能是templatetags) 3.创建任意 .py 文件,如:my_tags.py 首先你需要在你的app中创建新的一个规定好的文件夹这个文件夹的名字是规定好…
1.模板继承 母版master.html {% block title %}{% endblock %}2 {% block table-cont %}{% endblock %} 子板 {% extends 'master.html' %} {% block title %}应用列表{% endblock %} {% block table-cont %} ... {% endblock %} 2.自定义分页 #! /usr/bin/env python3 # -*- coding:utf-8…
本质上来说,模板继承就是先构造一个基础框架模板,而后在其子模板中对它所包含站点公用部分和定义块进行重载. 让我们通过修改 current_datetime.html 文件,为 current_datetime 创建一个更加完整的模板来体会一下这种做法: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html lang="en"> <head> <title>Th…
可以将每个html公共的部分做成一个基本模板,其他模板继承这个基本模板,则会拥有基本模板的所有内容. views.py from django.shortcuts import render def index(request): context = {'username': 'zhiliao'} return render(request,'index.html',context=context) def company(request): return render(request,'com…
一.变量       1.变量的形式是:{{variable}}, 当模板引擎碰到变量的时候,引擎使用变量的值代替变量.    2.使用dot(.)能够访问变量的属性    3.当模板引擎碰到dot的时候,查找的顺序是什么样子呢?        a.字典查找,例如:foo["var1"]        b.属性查找,例如:foo.bar        c.方法查找,例如:foo.bar()        d.list-index查找,例如foo[bar] 注意:方法查找比一般的查找要复…
一.模板继承 1.模板继承可以在创建一个基本“骨架”后,被其它子模板继承并覆盖,通过修改基础模板可以修改子模板中的所有框架 2.在模板teacher文件夹下创建基础模板 {% block xxx}与{% block }是成对出现的 该标签的功能是为子模板声明该出内容可以被覆盖重写 不写则为基础模板的内容 3.在student_list页面继承基础模板 首行的{% extends 'teacher/base.html'}必须写 其余内容按常规写在{% block }{% endblock }中 二…
模板的作用是计算并输出: {{ 变量}} 当模版引擎遇到点如book.title,会按照下列顺序解析: 1.字典book['title'] 2.先属性后方法,将book当作对象,查找属性title,如果没有再查找方法title() 3.如果是格式为book.0则解析为列表book[0] {% 代码段 %} {% for item in list%} 循环的逻辑 {{forloop.counter}}表示当前是第几次循环 {% empty %} 列表为空或不存在时执行此逻辑 {% endfor %…
# block 站网页位置# includ 导入网页标签# extends 导入网页模板 # common_js.html <script src="/static/plugins/jquery.min.js"> # footer.html <hr> <p>Thanks for visiting my site.</p> #base.html 母版 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HT…
前言 打开一个网站时候,点导航栏切换到不同的页面,发现导航部分是不变的,只是页面的主体内容变了,于是就可以写个母模板,其它的子页面继承母模板就可以了. 母模板 可以在母模板中添加多个块标签,每个块标签取不同的名称,如下格式,context是块标签名称 {% block content %} {% endblock content %} <!DOCTYPE html> <html lang="en"> <head> <meta charset=&…
除了INCLUDE, EXTENDS基本的继承模板之外,如果想在本模板上,直接生成让同类页面继承的模板, 则可以需要自定义的地方实现自定义BLOCK, 先在本页面实现自己的BLOCK,然后,在继承的页面实现另外的BLOCK.. 比如: 想让自己实现一个通用的SCRIPT,然后让继承的实现其它SCRIPT,则可以如下: {% block script %} <script type="text/javascript"> //通用的SCRIPT {% block script_…
1.模板的继承一般用在别人给我们做好的HTML页面,当我们发现有很多的页面都具有相同的部分,这会我们应该考虑怎么能把他们相同的部分给提取出来,提取出来的部分我们作为一个单独的HTML文件叫做base.html,其余不同的部分我们在base.html中用{%block  content%}{%endblock%}留坑 2.当页面1和页面2都继承这个base.html 之后,页面1和页面2也都继承了base.html当中的那个block块,在页面1这个块之间去写页面1与公共部分不同的代码.在页面2这…
在很多网站中,基本上的都会有一个开头和一个结尾,在每一个网页中都会显示.相对于这种的来说,在Django中,最好的方法就是使用include的标签,在每一个模板中都加入这个开头和结尾的标签. 官方文档:链接 1.可以直接使用模板的名字进行导入,例如 {% include "index.html"%} 2.可以使用模板的路径进行导入,例如,要导入templates目录的子目录aaa中的html文件,如图: 使用{% include "aaa/include.html"…
自定义验证规则以及中间件简单介绍 1.python2和python3中的区别 对于python2内置的字符串类型有str和unicode 比如:"abc"是字符串,u"你好"是unicode 字符串(utf-8/gbk编码之后值) unicode 对于python3内置的字符串类型有bytes和unicode bytes(utf-8/gbk编码之后值) 字符串(unicode) python3 中的bytes,就是python2中的字符串 python2 中的字符串…
##### 母版 ##### 这里是头部 {% block body-content %}{% endblock %} 这里是底部 #### 继承模板 ### {% extends 'layout.html' %} {% block body-content %} 123345 {% endblock %} ######  包含模板 #### {% include 'd2_404.html' %}…
(1)在APP下创建templatetags文件夹,与Models.py.views.py等同级,templatetags文件夹下添加__init__.py文件,可为空,再添加一个模块文件,例如cpt_filters.py,目录结构如下 myapp/ __init__.py models.py templatetags/ __init__.py cpt_filters.py views.py admin.py appa.py 目录下添加__init__.py文件可让python知道这里是pyth…
父文件:index.html <!DOCTYPE html> <html lang="en"> <head> <title>{% block title %}Index{% endblock %}</title> <meta charset="utf-8"> <script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min…
自定义过滤器的文件: 在 app01 下新建一个 templatetags 的文件夹,然后创建 myfilter.py 文件 这个 templatetags 名字是固定的,myfilter 是自己起的 myfilter.py: from django import template register = template.Library() @register.filter(name="sleep") # name 是 html 中的过滤器名 def sleep(arg): retur…
from django.shortcuts import render,HttpResponse from django import forms from django.core.exceptions import ValidationError #校验错误 class UserInfo(forms.Form): username = forms.CharField( label='用户名', required=True, ) password = forms.CharField( label…
inclusion_tag在使用的时候可以帮我们减少很多前端和后端重复的代码 逻辑图: inclusion_tag的作用是主页面以一定的语法给一个参数,调用某个函数,这个函数可以通过主页面给的参数做一些逻辑处理得到一些数据,将数据渲染到一个小html模块,然后将渲染后的小html模块返回给主页面渲染在调用的位置. 在使用自定义inclusion_tag的时候,我们需要在应用下面新建templatetags文件包,里面必须含有__init__.py文件,另外新建一个任意名称的py文件,里面的固定写…
昨日忘记上传,先预留位置,稍后补上…
自定义标签或者过滤器的步骤 ①将要创建自定义标签或过滤器的app加入settings文件的installed_apps中 ②在app中创建templatetags目录,类型为包即packages ③在templatetags目录下创建py文件,在文件中创建标签或过滤器 ④在模板中的第一行通过{% load py文件名 %}导入创建标签或过滤器的py文件 ⑤在模板中使用自定义标签或过滤器 示例:在templatetags目录下创建名为myTags的py文件 from django import t…
Django 04 模板标签(if.for.url.with.autoeacape.模板继承于引用.静态文件加载) 一.if.for.url.with.autoescape urlpatterns = [ path('hello/<name>/',views.hello), path('hello1', views.hello1,name='hello1'), path('hello2/<yy>', views.hello2,name='hello2') ] def hello(r…
1.常用的模板标签 -作用是什么? -常用标签 总结:语法 {% tag %} {% endtag %} {% tag 参数 参数 %} 2.模板的继承与引用 -引用 include标签 -继承 extends标签 block 标签在渲染的过程中提供任意的逻辑 标签语法: 由{%和 %} 来定义的, 例如:{%tag%}{ %endtag%} 这个定义是刻意模糊的. 例如,一个标签可以输出内容,作为控制结构,例如“if”语句或“for”循环从数据库中提取内容,甚至可以访问其他的模板标签. 常用标…