Django基础篇--模板和路由分发
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基础篇--模板和路由分发的更多相关文章
- 01: Django基础篇
目录:Django其他篇 01:Django基础篇 02:Django进阶篇 03:Django数据库操作--->Model 04: Form 验证用户数据 & 生成html 05:Mo ...
- day 66 Django基础二之URL路由系统
Django基础二之URL路由系统 本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11 ...
- day 53 Django基础二之URL路由系统
Django基础二之URL路由系统 本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11 ...
- Django框架02 /Django下载安装、url路由分发
Django框架02 /Django下载安装.url路由分发 目录 Django框架02 /Django下载安装.url路由分发 1. django下载安装 2. pycharm创建项目 3. 基于D ...
- 01:django基础篇
Django其他篇 目录: 1.1 django初探 1.2 第一个django项目 1.3 django render/redirect/HttpResponse 和 request.GET req ...
- Web框架django基础篇
基本配置及学习 路由(Urls).视图(Views).模板(Template).Model(ORM). 简介 Django 是一个由 Python 写成的开放源代码的 Web 应用框架.它最初是被开 ...
- day56——http协议、MVC和MTV框架模式、django下载安装、url路由分发
day56 昨日复习 今日内容 HTTP协议 网页:https://www.cnblogs.com/clschao/articles/9230431.html 老师整理的重点 老师整理的重点 请求信息 ...
- python的django基础篇
一.Django基础 Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站! Django的特点: 强大的数据库功能:拥有强大的数据库操作接口(QueryS ...
- python3之Django基础篇
一.Django基础 Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站! Django的特点: 强大的数据库功能:拥有强大的数据库操作接口(QueryS ...
随机推荐
- 小游戏——金庸奇侠传(JAVA,对面向对象的进一步了解)
金庸群侠传 游戏运行界面: 游戏实现源码: package game.logic; //人类 public class Person { public String name; //名字 Pers ...
- Python——使用代码平台进行识别验证码
打码平台介绍 一般使用超级鹰或打码兔的打码平台. 超级鹰介绍 打开http://www.chaojiying.com/contact.html注册用户,生成软件ID 下载python的demo文件 查 ...
- Java 基础学习总结(一)抽象类和接口
接触java的时间不是很长,以前对抽象类和接口的定义和区别也是模糊不清,最近拿起学校的教程读了起来,也参阅了网上的博客大神理解和总结,于是决定自己按照自己的理解来总结一下. 抽象类(半成品) 一般 ...
- java开发,年薪15W的你和年薪50W的他的差距
在这个IT系统动辄就是上亿流量的时代,Java作为大数据时代应用最广泛的语言,诞生了一批又一批的新技术,包括HBase.Hadoop.MQ.Netty.SpringCloud等等 . 一些独角 ...
- vi/vim编辑器的使用
命令模式下操作替换字符:%s/str1/str2/g删除全部内容:%d不保存退出:q!保存退出:wq! 执行shell命令:!command 如!ls -l 在下一行插入shell命令执行 ...
- GNum试用体验
只需在GNum上注册一个用户名,填上自己的电话号码,它就会自动生成一个URL,你的朋友(可以不注册GNum)在浏览器上进入这个 URL,就可以给你的手机打电话,目前可以免费通话200分钟,而且如果你邀 ...
- 【Java基本功】很多人经常忽视的Java基础知识点
*.Java文件 问题:一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 答案:可以有多个类,但只能有一个public的类,并且public的类名必须与文件 ...
- Linux下rsync daemon模式下的错误汇总
一.前言:最近学习服务环境搭建,遇到了许多大大小小的问题,不过还好,经过我的一通努力终于都解决了,所以分享出来给自己留个纪念,同时也希望能帮助学习中的朋友. 二.环境:两台服务器环境相同 1 [roo ...
- h5活动页开发总结记录
前几天在做h5活动页面的时候,有这样一个需求 上面的活动排行点击查看历史排行数据,弹出日期选择框,如下图 点击要查看的日期排行数据,这里需要对还没到的日期做处理,让用户不能选择,只可选择今天或者之前的 ...
- Spark SQL结构化数据处理
Spark SQL是Spark框架的重要组成部分, 主要用于结构化数据处理和对Spark数据执行类SQL的查询. DataFrame是一个分布式的,按照命名列的形式组织的数据集合. 一张SQL数据表可 ...