django第三课 模板变量及过滤器

1.模板路径的查找

- 查找顺序,
        - 会首先查找TEMPLATES里面的DIRS
  TEMPLATES = [
   {
       ‘BACKEND‘: ‘django.template.backends.django.DjangoTemplates‘,
       ‘DIRS‘: [os.path.join(BASE_DIR,‘templets‘)],
       ‘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‘,
           ],
       },
   },
]
        - 然后如果APP_DIRS为TRUE时,会去查找 INSTALLED_APPS, 这两种方案,以为第一种方案为准。
INSTALLED_APPS = [
    ‘
    ‘django.contrib.admin‘,
    ‘django.contrib.auth‘,
    ‘django.contrib.contenttypes‘,
    ‘django.contrib.sessions‘,
    ‘django.contrib.messages‘,
    ‘django.contrib.staticfiles‘,
]
    尝试,在app目录下存放模板
- 两种方案

- 为什么要在tempaltes里面再套一层
** 只要找到一个符合的模板,就返回

2.模板变量

    - 静态页面,内容不会发送变化
    - 动态页面 内容是动态的,与服务器进行交互。会随时间变化而变化。

动态页面可以通过render 方法渲染

- 模板变量
    - 语法
    *** 不能以下划线开头

**变量的值可以是任何数据类型
-变量的解析规则
    各种尝试
    1.计算变量,将其替换为结果
                ```

from django.shortcuts import render,redirect,reverse

from django.template.loader import get_template

from datetime import datetime

Create your views here.

from django.http import HttpResponse

def index(request):

now =datetime.now()

# tp = get_template(‘index.html‘)

# html = tp.render()

return render(request,‘index.html‘,context={

‘now‘:now

})

```

2.遇到点(.)的时候,按一下顺序查找:

-1.字典键值查找

-2.属性或方法查找

-3.数字索引查找

3.如果结果是可调用的,则调用它时不带参数。调用的结果成为模板的值

## 所谓的结果是可调用的,说明变量是个函数,或是个方法

    ** 渲染失败返回‘‘

3.模板过滤器 filter

-常用模板过滤器
    add 将参数与值相加 首先尝试转换成整数相加,失败,则尝试所有可能,字符串,列表等。{{ value|add:"2" }}
    capfirst 首字母大写,如果第一个字母不是字母则不起作用。{{ value|capfirst }}
    date 日期格式化 {{ value|date:"D d M Y" }}
    time 时间格式化 {{ value|time:"H:i" }} 格式化格式见官方文档:https://docs.djangoproject.com/en/2.1/ref/templates/builtins/#date
    default 如果变量解析失败,使用给定的默认值。{{ value|default:"nothing" }}(注意如果value是‘‘空字符串,输出将会是‘nothing‘)
    first 返回列表的第一个元素 {{ value|first }}
    last 返回列表的最有一个元素 {{ value|last }}
    slice 返回一个列表的切片 {{ some_list|slice:":2" }}
    join 连接字符串列表 与str.join(list)一样 {{ value|join:" // " }}
    floatformat 浮点数格式化 不指定小数位参数,默认保留一个为小数
    value        Template               Output
    34.23234    {{ value|floatformat }} 34.2
    34.23234    {{ value|floatformat:3 }} 34.232
    length 返回字符串或列表的长度
    length_is 判断字符串或列表长度是否指定的值,相等返回True {{ value|length_is:"4" }}
    lower 字符串中的字母都变小写{{ value|lower }}
    upper 字符串中的字母都变大写{{ value|upper }}
    safe 关闭变量的自动转义,使html标签生效{{ value|safe }}
    title 标题化,首字母大写 {{ value|title }}
-xss(跨域脚本攻击)

4.静态文件

-css

-js

-图片

-1. 路径配置

- STATICFILES_DIRS

- STATIC_URL

-2. 静态文件的引入

-1. 硬编码 通过 STATIC_URL

-2. 模板标签

实习机会,私聊,电话面试 时间

原文地址:https://www.cnblogs.com/donghao1121/p/10398365.html

时间: 2024-10-28 03:28:56

django第三课 模板变量及过滤器的相关文章

Django——模板路径 模板变量 常用过滤器 静态文件的使用

Django 模板路径 模板变量 过滤器 静态文件的加载 模板的路径,有两种方法来使用 设置一个总的templates在大项目外面,然后在sittings的TEMPLATES中声明 在每一个APP中创建templates,然后在settings的INSTALLED_APPS中声明 模板变量的使用 语法:   {{ 变量名 }} 命名由字母和数字以及下划线组成,不能有空格和标点符号 可以使用字典.模型.方法.函数.列表 不要和python或django关键字重名 变量和查找 注:1.如果data是

三、模板变量及模板过滤器

三.模板变量及模板过滤器 1.模板路径总结 1.1新建一个新的app python manage.py startapp student 1.2 配置app下的templates文件夹 INSTALLED_APPS = [   'django.contrib.admin',   'django.contrib.auth',   'django.contrib.contenttypes',   'django.contrib.sessions',   'django.contrib.message

Django 第三课 【模板】

## 模板 在之前的章节中 ,视图函数只返回文本,而实际上生产环境中其实很少这样用,因为实际的页面大多数是带有样式的HTML代码,这可以让浏览器渲染出非常漂亮的页面.目前市面上有非常多的模板系统.其中最知名最好用的就是DTL 和Jinja2.DTL 是Django Temlate Language 三个单词的缩写.也就是Django自带的模板语言.当然也可以配置Django支持Jinja2等其他模板引擎,但是作为Django内置的模板语言,和Django可以达到无缝衔接而不会产生一些不兼容的情况

模板变量,过滤器和静态文件引用

一.模板变量 语法:{{  变量名  }} 由字母.数字以及下划线组成,不能以下划线开头,不能有空格和标点符号 例:在app (teacher文件夹)下的views.py文件中定义一个函数,用render里的参数context,context是以键值对形式 def index(request): lt = [1,2,3] dt = {'name':'shen' , 'age':18} return render(request, 'teacher/index.html', context = {

Django第三课——Django Form

Django之Form组件 http://www.cnblogs.com/wupeiqi/articles/6144178.html Tyrion是一个基于Python实现的支持多个WEB框架的Form表单验证组件,其完美的支持Tornado.Django.Flask.Bottle Web框架. http://www.cnblogs.com/wupeiqi/p/5938916.html

django第四课 模板标签,继承与引用

pycharm 远程同步配置 会出问题 不自动同步 1.常用的模板标签 -作用是什么? -常用标签 总结:语法 {% tag %} {% endtag %} {% tag 参数 参数 %} 案例: views.py设置把里面的index 里面的students以表格形式显示 1 def index(request): 2 3 students = [ 4 {'id': 10, 'name': '张三', 'age': 18, 'sex': '男'}, 5 {'id': 11, 'name': '

Django框架之第三篇模板语法(重要!!!)

一.什么是模板? 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板. 二.模板语法分类 一.模板语法之变量:语法为 {{ }}: 在 Django 模板中遍历复杂数据结构的关键是句点字符  .(也就是点) views.py def index(request): name = "hello haiyan" i = 200 l = [11,22,33,44,55] d = {"name":"haiyan","age

Django框架之第三篇模板语法

Django框架之第三篇模板语法(重要!!!) 一.什么是模板? 只要是在html里面有模板语法就不是html文件了,这样的文件就叫做模板. 二.模板语法分类 一.模板语法之变量:语法为 {{ }}: 在 Django 模板中遍历复杂数据结构的关键是句点字符  .(也就是点) views.py def index(request): name = "hello haiyan" i = 200 l = [11,22,33,44,55] d = {"name":&quo

Django(七)—— 模板层:变量、过滤器、标签、自定义标签和过滤器

模板层:变量.过滤器.标签.自定义标签和过滤器 将页面的设计和Python的代码分离开会更干净简洁更容易维护. 我们可以使用 Django的 模板系统 (Template System)来实现这种模式 # django模板修改的视图函数 def current_time(req): from django.template import Template,Context now=datetime.datetime.now() t=Template('<html><body>现在时刻