Django 第四篇
Posted jingandyuer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 第四篇相关的知识,希望对你有一定的参考价值。
模板的继承: 你首先继承一个html页面,继承了意味你拥有父模板所有的东西,你只需要在父模板的基础 上修改布局即可 第一步;在父模板划分多个区域 % block 给区域起的名字 % 父模板需要被重写或者重用的代码 % endblock % 第二步,在子模板继承父模板% extends ‘父模板文件名’ % 第三步,在子模板中重写父模板被划分的代码 % block 给区域起的名字 % 自己重写的代码 % endblock % 第四步,如果还想用父模板中的代码,可以重用父模板的方法 block.super等于重用了父类的方法
模板的导入 模板的导入就类似导模块,引用的作用 将一个文件夹的一段html当做模块的方式导入到另一个html文件夹展示 % include ‘想导入的html文件名‘ %
静态文件配置 % load static % <link rel=‘stylesheet‘ href="% static ‘css/mycss.css‘%"> # 第一种方式 <link rel=‘stylesheet‘ href="% get_static_prefix %css/mycss.css"> # 第二种方式
后端向前端传递数据的方式: # 第一种 return render(request,‘index.html‘,‘n‘:n) # 第二种 return render(request,‘index.html‘,locals()) # 将当前所在的名称空间中的名字全部传递给前端页面
后端传函数名到前端,会自动加括号调用,但是不支持传参
后端传对象到前端,就相当于打印了这个对象
前端获取后端传过来的容器类型的内部元素 统一采用句点符(.) (‘关某某‘,‘谢某某‘,‘陈某某‘,‘容嬷嬷‘) t.1 》》》谢某某 1代表的是索引,列表的话点索引取值,字典的话点key,来获取Vauels
过滤器
<p>前端统计字符串的长度: s|length </p>
<p>前端获取数据如果是空就返回default后面默认的参数值: flag|default:‘你这个东西是个空‘</p>
<p>将数字格式化成表示文件大小的单位: file_size|filesizeformat </p
<p>前端统计字符串的长度: s|length </p>
<p>前端获取数据如果是空就返回default后面默认的参数值: flag|default:‘你这个东西是个空‘</p>
<p>将数字格式化成表示文件大小的单位: file_size|filesizeformat </p
<p> ctime </p>
<p>格式化时间(不要加百分号) ctime|date:‘Y-m-d‘ </p>
<p>字符串的切片操作: res|slice:‘0:8‘ </p>
<p> res|slice:‘0:8:2‘ </p>
<p>格式化时间(不要加百分号) ctime|date:‘Y-m-d‘ </p>
<p>字符串的切片操作: res|slice:‘0:8‘ </p>
<p> res|slice:‘0:8:2‘ </p>
<p>截取固定的长度的字符串 三个点也算: s|truncatechars:10 </p>
<p>按照空格截取文本内容: res|truncatewords:4 </p>
<p> s|truncatewords:4 </p>
<p> s|truncatewords:4 </p>
add拼接的作用,必须是同种类型,如果是数字就相加运算
<p> ‘hahah‘|add:‘heheheh‘ </p>
前后端取消转义:我传html格式,浏览器会默认转义成普通字符串,取消转义 就是我传什么格式,浏览器就打印什么格式,怎么取消? 前端: |safe 后端: from django.utils.safestring import mark_safe xxx = mark_safe(‘<h1>我是h1标签</h1>‘)
标签 for循环 % for foo in l % <p> foo </p> <p> forloop </p> % endfor % if判断 % if flag % <p>flag不为空</p> % else % <p>flag是空</p> % endif % 嵌套使用 % for foo in l % % if forloop.first % <p>这是我的第一次</p> % elif forloop.last % <p>这是最后一次了啊</p> % else % <p>嗨起来!!!</p> % endif % % endfor % empty 当你的for循环对象为空的时候会自动走empty代码块儿的内容 后端: l = None 前端: % for foo in l % % if forloop.first % <p>这是我的第一次</p> % elif forloop.last % <p>这是最后一次了啊</p> % else % <p>嗨起来!!!</p> % endif % % empty % <p>你给我的容器类型是个空啊,没法for循环</p> % endfor %
自定义过滤器 必须做的三件事 1.在应用名下新建一个名为templatetags文件夹(必须叫这个名字) 2.在该新建的文件夹内新建一个任意名称的py文件 3.在该py文件中需要固定写下面两句代码 from django import template register = template.Library() # 自定义过滤器 @register.filter(name=‘XBB‘) def index(a,b): return a+b
自定义标签 # 自定义标签 @register.simple_tag def plus(a,b,c): return a+b+c 自定义inclusion_tag # 自定义inclusion_tag @register.inclusion_tag(‘login.html‘,name=‘login‘) def login(n): # l = [] # for i in range(n): # l.append(‘第%s项‘%i) l = [ ‘第%s项‘%i for i in range(n)] return ‘l‘:l # login.html <ul> % for foo in l % <li> foo </li> % endfor % </ul> # 调用 % login 5 % 注意 :要想使用自定义的过滤器 标签 inclusion_tag 必须先在需要使用的html页面加载你的py文件 % load my_tag % 666|XBB:8 % plus 1 2 3 % % login 5 %
以上是关于Django 第四篇的主要内容,如果未能解决你的问题,请参考以下文章