django_2:模板
使用模板变量:
在html文件中,{{title}}即为模板变量,
在view.py文件中,render函数,增加第三个参数,以字典形式给值。
def index(req):
return render(req, 'index1.html', {'title': 'mypage', 'user': 'tom'})
可以将‘mypage’,‘tom’改成变量,实现接口和动态;
该变量可以是基本变量(单值)、字典、list、类等,在html中可以索引{{user.key}}
字典
def index(req):
user = {'name':'tom', 'age':, 'sex':'male'}
return render(req, 'index1.html', {'title': 'mypage', 'user': user})
对象
(可以使用的对象属性、方法),在调用对象的方法时,注意没有参数,要有return
def index(req):
user = Person('tom', , 'male')
return render(req, 'index1.html', {'title': 'mypage', 'user': user})
在html中存在优先级:先基本变量,再字典、对象的属性、对象的方法、最后列表
模板标签的使用:
{% if xx%}
{% else %}
{% endif %}
判断条件xx:
- 可以是变量,判断变量是否存在
- 可以是boolean操作, 使用and、or、not;注意不能使用();django1.3不可以and和or连用,django1.11可以
- 可以是关系运算,等于,不等于,大小,大于等于等,注意:必须要有空格隔开!
- 可以是in、not in运算
{% for book in book_list %}
<li>book</li>
{% empty %} #可以没有这句
book_list为空
{% endfor %}
- 被遍历对象可以是llist
- 对字典遍历,跟python对dict遍历一样,for u in user得到键的遍历,for k, v in user.items: {{k}} {{v}}
- 可以是复合数据类型
forloop.counter |
序号,从1开始 |
forloop.counter0 |
从0开始 |
forloop.revcounter |
反向 |
forloop.revcounter0 |
反向 |
forloop.first |
True if the firsh through the loop |
forloop.last | |
forloop.parentloop |
for nested loops, this is the loop 'above' the current one |
- for ... empty
使用模板:
#from django.shortcuts import render
#coding:utf-
#from django.shortcuts import render
from django.template import loader, Context, Template
from django.http import HttpResponse # Create your views here.
def index(seq):
t = loader.get_template('index.html') #加载模板,用文件
c = Context({'uname': 'alen'}) #生成Context对象
html = t.render(c) #渲染
return HttpResponse(html) #输出,我的测试报错!没找到问题 def index1(req):
t = Template('<h1>hello {{uname}}</h1>') #用字符串,生成模板对象
c = Context({'uname':'csvt'})
html = t.render(c) #渲染
return HttpResponse(html) #输出,测试成功
以上两种方法,被简化为使用render方法
1.3使用的是from django.shortcuts import render_to_response
django_2:模板的更多相关文章
- Jade模板引擎让你飞
写在前面:现在jade改名成pug了 一.安装 npm install jade 二.基本使用 1.简单使用 p hello jade! 渲染后: <p>hello jade!</p ...
- ABP入门系列(2)——通过模板创建MAP版本项目
一.从官网创建模板项目 进入官网下载模板项目 依次按下图选择: 输入验证码开始下载 下载提示: 二.启动项目 使用VS2015打开项目,还原Nuget包: 设置以Web结尾的项目,设置为启动项目: 打 ...
- CMS模板应用调研问卷
截止目前,已经有数十家网站与我们合作,进行了MIP化改造,在搜索结果页也能看到"闪电标"的出现.除了改造方面的问题,MIP项目组被问到最多的就是:我用了wordpress,我用了织 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- 【原创分享·微信支付】C# MVC 微信支付之微信模板消息推送
微信支付之微信模板消息推送 今天我要跟大家分享的是“模板消息”的推送,这玩意呢,你说用途嘛,那还是真真的牛逼呐.原因在哪?就是因为它是依赖微信生存的呀,所以他能不 ...
- OpenCV模板匹配算法详解
1 理论介绍 模板匹配是在一幅图像中寻找一个特定目标的方法之一,这种方法的原理非常简单,遍历图像中的每一个可能的位置,比较各处与模板是否“相似”,当相似度足够高时,就认为找到了我们的目标.OpenCV ...
- 前端MVC学习总结(一)——MVC概要与angular概要、模板与数据绑定
一.前端MVC概要 1.1.库与框架的区别 框架是一个软件的半成品,在全局范围内给了大的约束.库是工具,在单点上给我们提供功能.框架是依赖库的.AngularJS是框架而jQuery则是库. 1.2. ...
- ThinkPHP+Smarty模板中截取包含中英文混合的字符串乱码的解决方案
好几天没写博客了,其实有好多需要总结的,因为最近一直在忙着做项目,但是困惑了几天的Smarty模板中截取包含中英文混合的字符串乱码的问题,终于解决了,所以记录下来,需要的朋友看一下: 出现乱码的原因: ...
- ThinkPHP 模板substr的截取字符串函数
ThinkPHP 模板substr的截取字符串函数在Common/function.php加上以下代码 /** ** 截取中文字符串 **/ function msubstr($str, $start ...
随机推荐
- swoole与php协程实现异步非阻塞IO开发
“协程可以在遇到阻塞的时候中断主动让渡资源,调度程序选择其他的协程运行.从而实现非阻塞IO” 然而php是不支持原生协程的,遇到阻塞时如不交由异步进程来执行是没有任何意义的,代码还是同步执行的,如下所 ...
- 怎样快速找到某一行代码的git提交记录
利用notepad++提高问题分析效率,以及快速找到某一行代码的git提交记录 1. 全目录搜索/替换 Notepad++是一款强大的文本编辑工具,当知道大概的关键词但不知道在哪个日志时可以使用not ...
- springboot security+redis+jwt+验证码 登录验证
概述 基于jwt的token认证方案 验证码 框架的搭建,可以自己根据网上搭建,或者看我博客springboot相关的博客,这边就不做介绍了.验证码生成可以利用Java第三方组件,引入 <dep ...
- 别再让你的微服务裸奔了,基于 Spring Session & Spring Security 微服务权限控制
微服务架构 网关:路由用户请求到指定服务,转发前端 Cookie 中包含的 Session 信息: 用户服务:用户登录认证(Authentication),用户授权(Authority),用户管理(R ...
- js检测页面上一个元素是否已经滚动到了屏幕的可视区域内
应用场景:只要页面加载了,其中在页面中出现的li就向控制台输出第几个发送请求:在本次加载的页面中,再将滚动条滚回前边的li,不再向控制台输出东西,也就是说已经显示过的li,不再向控制台输出东西. &l ...
- Spring Cloud Alibaba(三)Sentinel之熔断降级
本项目演示如何使用 Sentinel 完成 Spring Cloud 应用的熔断降级调用. Sentinel 是阿里巴巴开源的分布式系统的流量防卫组件,Sentinel 把流量作为切入点,从流量控制, ...
- Redis备忘(一)
hash: 渐进式rehash:同时查询新旧两个hash,然后在后续定时任务以及hash的子指令中,循序渐进将旧的迁移到新的hash表 Redis应用: 1.分布式锁: 实现1:setnx+expir ...
- windows设置本地域名解析
1.首先找到host文件:C:\Windows\System32\drivers\etc 2.打开host文件: # Copyright (c) 1993-2009 Microsoft Corp. # ...
- WCF(一):初探WCF
目录: 一.什么是WCF 二.WCF能做什么 三.WCF的模型 四.WCF的基本概念 五.WCF的快速创建 1.WCF是什么? A.WindowsCommunication Foundation(WC ...
- python实现输入任意一个大写字母生成金字塔的示例
输入任意一个大写字母,生成金字塔图形 def GoldTa(input): L = [chr(i) for i in range(65, 91)] # 大写字母A--Z idA = 65 # 从A开始 ...