Django模板

首先什么是一个模板?

简单来说就是一个网页,可以被view响应给用户

目的是为了解决复杂的显示问题

2. 模板的设置问题

setting.py中的TEMPLATES配置

1)BACKEND: 指定模板的搜索引擎,不用改动

2)DIRS: 指定模板存放的目录

DIRS=[‘ index.temp’ ,’music.temp’]

但是,如果DIRS中为空的话,那么django会自动搜索每个应用中的templates的文件夹作为模板的管理目录

推荐:DIRS保持空,但必须在每个应用中,创建一个templates的文件夹

3)APP_DIRS

True : 首先从DIRS中指定的文件夹中查找模板,如果没有找到指定模板的话,则再搜索templates目录

3. 模板的加载方式

HttpResponse() 这是加载字符串的

1. 使用loader 获取模板,通过HttpResponse进行响应

最终返回模板前都是把模板转化为字符串

2. 使用render直接加载

return  render (request, ’模板名称’ , {参数字典})

4. url()函数的name参数(这个用法是比较灵活的)

urlpatterns = [

url( regex,views , kwargs =None, name = None)

]

name: 定义当前url的别名,允许在Template中使用别名来

例如:

urlpatterns = [

url( regex,views , kwargs =None, name = ’my’)

]

在超链接中用得很多

需要使用标签

{% url ‘name值’%}    #服务器解析

<a href=’ {%url  ‘ my’  %}’ >去往second 页面</a>

注意:name别名不能重复定义

url参数

<a href=’/music/show/35’> 去往show/35地址的页面</a>  #不用别名的条件下写全路由 

<a href=’ {%url  ‘ my’  87 %}’ >去往show/87页面</a>  #传参数,直接在’别名’ 后加空格加参数

 

模板语法:

1. 变量

作用:允许将后端的数据传递给模板(html),模板中,会根据变量实际值进行显示

1)允许传递给变量的数据类型

数字,字符串,列表,元组,字典,函数,对象(类) (注意:集合不行)

注意:函数一定要返回值

2)如何传递变量到模板中

render

dict={

‘变量1’:’值1’,

‘变量1’:’值1’,

}

return  render(request, ‘xx.html’,dict)

重点:

如果是传列表,元组,字典等,先组织好数据,再把数据放dict中

例如:

dict ={

‘l’ :list,

‘d’ :dict,

}

或者用locals()将局部变量组织成字典传入参数,对象除外

3)模板中获取变量的值

{{ 变量名称}}      #字符串

{{变量名称.1}}     #列表/元组

{{变量名称. key}}    #字典

{{函数名}}         #函数

{{类名.方法名 }}    #对象

2. 标签 (具体更多标签用法可以看看官方文档)

1)什么是标签?

允许嵌套一些服务器段端的逻辑运算到模板中

而变量只管数值,标签管运算

2)语法

{% %}

注意:写的过程运算符,变量都必须用空格隔开

常用标签

1. {% if 条件%}   #条件可以用简单逻辑判断,例如 >  <  == 等等

{% else  %}

{% end if %}

接受not, and ,or 运算

但是 and  和  or不能同时出现

以下内容当做False处理:

空[]

空 ()

空{}

数值0

空字符串

None

{% ifequal  值1  值2 %}   #判断值1 和值2是否相等,相当于值1 ==值2

{% else %}

{% endifequal %}

2. for标签

{% for  变量  in  列表| 元组 | 字典 %}

{% endfor%}

允许使用的内置变量(免声明):

forloop

1. forloop.counter :记录循环次数,从1开始

2. forloop.counter0 :同上,从0开始

3. forloop.revcounter:记录未被遍历的数量

4. forloop.revcounter0 :同上,从0开始

5. forloop.first : 布尔值,标记是否是第一个项(通常对第一个、最后一个做一些样式设置)

6. forloop.first : 布尔值,标记是否是最后一个项

<li  { % if  forloop.first  %} style= ‘color:red’ {% endif%} ></li>

3.过滤器

在显示变量之前,运行对数据进行筛选或改变

语法:

{{ var | 过滤器}}

常用过滤器:

1. {{var| upper}}

将英文字母改写为大写

2. {{var| lower}}

将英文字母改写为小写

常用的过滤器

1. 加法操作

var|add : ‘ num’

first | add: second   #first 和 second 是两个数字类型的列表

2.对小数进行四舍五入(金融和交系统)

var | floatformat:num  # num指定保留多少位小数

3. 超长的字符显示省略号(一些字符串显示)

value | truncatechars:num   #num指定保留的字符数

value | truncatewords: num

也可以用css实现

white-space:nowrap

text-overflow:ellipsis

Django基础篇--模板和路由分发的更多相关文章

  1. 01: Django基础篇

    目录:Django其他篇 01:Django基础篇 02:Django进阶篇 03:Django数据库操作--->Model 04: Form 验证用户数据 & 生成html 05:Mo ...

  2. day 66 Django基础二之URL路由系统

    Django基础二之URL路由系统   本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11 ...

  3. day 53 Django基础二之URL路由系统

    Django基础二之URL路由系统   本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11 ...

  4. Django框架02 /Django下载安装、url路由分发

    Django框架02 /Django下载安装.url路由分发 目录 Django框架02 /Django下载安装.url路由分发 1. django下载安装 2. pycharm创建项目 3. 基于D ...

  5. 01:django基础篇

    Django其他篇 目录: 1.1 django初探 1.2 第一个django项目 1.3 django render/redirect/HttpResponse 和 request.GET req ...

  6. Web框架django基础篇

    基本配置及学习  路由(Urls).视图(Views).模板(Template).Model(ORM). 简介 Django 是一个由 Python 写成的开放源代码的 Web 应用框架.它最初是被开 ...

  7. day56——http协议、MVC和MTV框架模式、django下载安装、url路由分发

    day56 昨日复习 今日内容 HTTP协议 网页:https://www.cnblogs.com/clschao/articles/9230431.html 老师整理的重点 老师整理的重点 请求信息 ...

  8. python的django基础篇

    一.Django基础 Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站! Django的特点: 强大的数据库功能:拥有强大的数据库操作接口(QueryS ...

  9. python3之Django基础篇

    一.Django基础 Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站! Django的特点: 强大的数据库功能:拥有强大的数据库操作接口(QueryS ...

随机推荐

  1. Maven - 实例-6-聚合与继承

    创建项目 xxx - 继承自testDep.PPP <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi= ...

  2. Info - 信息获取途径汇总

    目的驱动 大多数情况下,都是为了解决某个问题或完成某项任务,才需要进行针对性的.大范围的.细致化的信息获取. 那么,信息获取的方式和来源,就应该紧紧围绕这个"问题和任务"本身来确定 ...

  3. jquery 回车键实现表单提交

    JQery http://jquery.cuishifeng.cn/keydown.html 键盘事件参考:1.keydown()keydown事件会在键盘按下时触发.2.keyup()keyup事件 ...

  4. 在Hadoop集群上的Hive配置

    1. 系统环境Oracle VM VirtualBoxUbuntu 16.04Hadoop 2.7.4Java 1.8.0_111 hadoop集群master:192.168.19.128slave ...

  5. Vim 利剑常磨,见血封喉

    年底了,故事总是会有很多. 刚了一波通宵加班,趁着有时间,过了一遍Vim教程,顺便汇总下常用命令. 对于以 OSX / Linux为开发环境的伙伴们,应该并不陌生.因其轻便,扩展性,可定制化,一直很受 ...

  6. 使用crypt配置Basic Auth登录认证

    简介 Basic Auth用于服务端简单的登录认证,通常使用服务器Nginx.Apache本身即可完成.比如我们要限定某个域名或者页面必须输入用户名.密码才能登录,但又不想使用后端开发语言,此时Bas ...

  7. Hadoop2源码分析-YARN 的服务库和事件库

    1.概述 在<Hadoop2源码分析-YARN RPC 示例介绍>一文当中,给大家介绍了YARN 的 RPC 机制,以及相关代码的演示,今天我们继续去学习 YARN 的服务库和事件库,分享 ...

  8. C语言第四讲,typedef 关键字,以及作用域

    C语言第四讲,typedef 关键字,以及作用域 一丶typedef关键字 在C语言中,有typedef 关键字,这个关键字的作用就是允许你为类型定义一个新的名字,也就是 起个别的名字 例如: typ ...

  9. 图像边缘检测——几种图像边缘检测算子的学习及python 实现

    本文学习利用python学习边缘检测的滤波器,首先读入的图片代码如下: import cv2 from pylab import * saber = cv2.imread("construc ...

  10. JavaWeb学习 (二十一)————基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...