Django基础模板层(75-76)

Django框架之模板层(d75)
一 模版语法之变量:
 ** locals() 会把*该*视图函数内的变量,传到模板
    ** return render(request, ‘index.html‘, locals())
 1 {{ 变量 }}:******重要******{#相当于print了该变量#}
  只写函数名:相当于函数名(),执行该函数,打印函数返回值
 2 深度查询---->统一都用句点符 .
  拓展:不能调有参数的方法
二 模版之过滤器
 1语法:{{第一个参数|过滤器名字:第二个参数}}
 2常用过滤器:(详细用法见源码)
  1 length  返回列表中元素的个数或字符串长度
  2 default 如果值不存在,则使用默认值代替
  3 slice 切片操作, 返回列表 # {{ ‘asdikfjhih‘ | slice:‘:5‘ }} 返回 ‘asdik’
  4 date   格式化日期    {{ ctim|date:‘Y-m-d‘ }}
  5 filesizeformat 增加数字的可读性,转换结果为13KB  {{ 1024 | filesizeformat }} 返回 1.0KB
  6 truncatechars 字符串字符多于指定的字符数量,那么会被截断。截断的字符串将以可翻译的省略号序列(“...”)结尾
  7 truncatewords 将字符串转换为省略表达方式  {{ ‘This is a pen‘ | truncatewords:2 }}返回  This is ...
  8 safe 单独的变量我们可以通过过滤器“|safe”的方式告诉Django这段代码是安全的不必转义
  9 add 给value加上一个数值  {{ user.age | add:”5” }} 
三 模版之标签 : {% 标签 %}
  1 for: forloop:对象(里面有好多东西:parentloop,last,first,counter....)忘记的话, 自己打印一下
   empty:  被循环的对象是空,才走它
   for循环可以嵌套,也可以用if
  2 if:
   {% if forloop.first %}
    <p>第一次的我 </p>
   {% elif forloop.last %}
    <p>最后的我 </p>
   {% else %}
    <p>{{ foo }}</p>吧
   {% endif %}
  3 with:重命名,应用在变量名过长
  ********都要有结束******{%endif%}  {%endfor%}  {%enwith%}
四 自定义标签和过滤器 
 1 自定义过滤器
  1 先app是不是已经在setting中注册
  2 在app下创建一个templatetags(****名字不能变***)的文件夹(模块)
  3 在模块下创建一个py文件,名字随意:mytag.py
  4 第一步,导入template
     from django.template import Library
    第二步,定义一个叫register的变量=template.Library()
     register = Library()
  5 写一个函数,用@register.filter(name=‘yyy‘)装饰一下(可以指定别名)
   def str_add(str1, str2): #一定要有返回值
    # 业务逻辑很复杂
    return str1 + str2
  6 在模板里:(新定定义的标签,过滤器,都要重启程序)
   {% load mytag %}
   {{‘lqz‘|str_add:‘nb‘}}
  **过滤器,可以用在if判断
 2 自定义标签:
  1-4:前4步,根过滤器的定义完全一样
  5 只是装饰器不一样
   @register.simple_tag()
    def add_nb(value):
     return value+‘nb‘
  6 在模板里:(多个参数,以空格区分)
   {% load mytag %}
   {% add_nb ‘lqz‘%}
  **标签不能用在if判断
五 模版导入-->写了一个好看的组件,可以复用,
 1 写一个模板
 2 在模板中:{% include ‘模板的名字‘%}
六 模板的继承
 1 写一个母版,留一个可扩展的区域(盒子),可以留多个盒子(留的越多,可扩展性越高)
  {%block 名字%}
   可以写内容
  {%endblock%}
 2 在子模板中使用:
  {%block 名字%}
   子模板的内容
  {%endblock 名字%}
七 静态文件相关
 1 写死静态文件:<link rel="stylesheet" href="/static/css/mycss.css">
 2 使用 static标签函数:
  -{%load static%}
  #static返回值,会拼上传参的路径
  -{% static "传参"%}
 3 使用get_static_prefix 标签
  -{%load static%}
  #get_static_prefix返回值是:静态文件的地址,相当于/static/
  -{% get_static_prefix %}css/mycss.css

原文地址:https://www.cnblogs.com/wu-jia/p/9948858.html

时间: 2024-08-28 03:51:39

Django基础模板层(75-76)的相关文章

Django之模板层

前面学习了Django的下载和基础的操作,掌握了其基本框架,接下来我们来学习Django中的模板语法. 学习任务:知道什么是模板,以及html+模板语法的具体用法 python的模板:HTML代码+模板语法 模版包括在使用时会被值替换掉的 变量,和控制模版逻辑的标签. #原始的视图 def timeHandle(request): import datetime t=datetime.datetime.now() #Django修改后的视图 # 方式1: # return HttpRespons

Django -- 7.模板层

模板层 我们在例子视图中返回文本的方式有点特别. 也就是说,HTML被直接硬编码在 Python代码之中. def current_datetime(request): now = datetime.datetime.now() html = "<html><body>It is now %s.</body></html>" % now return HttpResponse(html) 尽管这种技术便于解释视图是如何工作的,但直接将HT

第五篇:Django的模板层

模板语法符号 {{ }}变量相关 模板层之模板传值 python基本数据类型全部支持传递给html文件 int.?oat.str.list.tuple.dict.set.bool 除此之外还可以传入函数,类和对象,其中函数和对象传入过去会自动加括号调用执行. 模板语法不支持传参,所以有参函数和调用类传参这些都不支持 后端给html文件传递数据的两种方式: 1.指名道姓 return render(request, 'index.html', {'n':n, 'f':f}) 2.locals()

053.Python前端Django框架模板层

模板层 一 模板语法之变量 在 Django 模板中遍历复杂数据结构的关键是句点字符, 语法: {{ var_name }} [[email protected] mysite]# cat app01/urls.py from django.urls import path,re_path from . import views urlpatterns = [ path("test/",views.test1,name="test1"), path("te

Django的模板层

将页面的设计和Python的代码分离开会更干净简洁更容易维护. 我们可以使用 Django的 模板系统 (Template System)来实现这种模式,这就是本章要具体讨论的问题. django的模板:HTML代码+模板语法: def timer(request): import time now_time = time.time() # html = "<html><body>现在时刻:<h1>%s.</h1></body><

7 Django的模板层

你可能已经注意到我们在例子视图中返回文本的方式有点特别. 也就是说,HTML被直接硬编码在 Python代码之中. def current_datetime(request): now = datetime.datetime.now() html = "<html><body>It is now %s.</body></html>" % now return HttpResponse(html) 尽管这种技术便于解释视图是如何工作的,但直

Django的模板层(1)

ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动. ORM是“对象-关系-映射”的简称 #sql中的表 #创建表: CREATE TABLE employee( id INT PRIMARY KEY auto_increment , name VARCHAR (20), gender BIT defa

Django之模板层-自定义过滤器以及标签

自定义标签与过滤器 在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag. 在app中创建templatetags模块(模块名只能是templatetags) 创建任意 .py 文件,如:my_tags.py from django import template # 该对象名必须是register register = template.Library() #自定义过滤器装饰器 @register.filter def mult

Django Template模板层 (下) ----------- 过滤器、人性化过滤器、模板继承、模板加载

---恢复内容开始--- 过滤器 除了模板标签可以帮助我们对数据或者进行逻辑处理.django 中还提供了一款工具叫做过滤器,过滤器也可以实现一些模板变量的运算,判断或是其他逻辑处理. add 语法: {{ var1|add:var2 }} add 过滤器可以实现 var1 与 var2 的相加,并且在遇到其他相同数据类型的,比如列表时,加号还可以重载为拼接功能 过滤器首先会将数据转换成Int类型,进行相加,如果转换失败,则会尝试使用 Python 中的数据类型 列表.元祖等这样的数据类型来进行