jinja2问题集锦
用jinja2写模板的时候遇到了一些问题,记录一下
抽出base.html作为模板
之前的小项目写得都很不规范,模板都是能用就行,基本上只用到if
语句,for
语句和变量。导航栏都是复制粘贴,没有把共同的部分抽出来。写模板的时候还应该注意一下不要直接在原来的html上改,这样容易把html改乱,应该新建一个template
目录,再一个个写模板,这样更好。
参照jinja2的文档抽出公共部分,如
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
{% block head %}
<link rel="stylesheet" href="style.css" />
<title>{% block title %}{% endblock %} - My Webpage</title>
{% endblock %}
</head>
<body>
<div id="content">{% block content %}{% endblock %}</div>
<div id="footer">
{% block footer %}
© Copyright 2008 by <a href="http://domain.invalid/">you</a>.
{% endblock %}
</div>
</body>
在子模板中填充对应的block
就行,如
{% block title %}
我是标题
{% endblock %}
对于在base.html里有但是子模板里木有的block
,对应位置会采用base.html里的内容。
导航栏怎么设置为active?
很多用到导航栏的情况都会有当前所在位置高亮的设置,假设CSS中.active
设为高亮了,那么在jinja2中就能给base.html传值,如:
<ul class="bd clearfix">
<li class="team clearfix {% if active == "team" %}now{% endif %}">
<a href="/team">
<div class="circle circle1" title="团队介绍"></div>
<div class="hover-wrap"></div>
<div class="title">
<p class="en">Team Introduction</p>
<p class="ch">团队介绍</p>
</div>
</a>
</li>
<li class="group clearfix {% if active == "group" %}now{% endif %}">
<a href="/group">
<div class="circle circle2" title="各组介绍"></div>
<div class="hover-wrap"></div>
<div class="title">
<p class="en">Group Introduction</p>
<p class="ch">各组介绍</p>
</div>
</a>
</li>
<li class="pro clearfix {% if active == "works" %}now{% endif %}">
<a href="/works">
<div class="circle circle3" title="陈列室"></div>
<div class="hover-wrap"></div>
<div class="title">
<p class="en">Portfolio</p>
<p class="ch">陈列室</p>
</div>
</a>
</li>
<li class="part clearfix {% if active == "partner" %}now{% endif %}">
<a href="/partner">
<div class="circle circle4" title="成员风采"></div>
<div class="hover-wrap"></div>
<div class="title">
<p class="en">Our Partner</p>
<p class="ch">成员风采</p>
</div>
</a>
</li>
<li class="re clearfix">
<a href="http://hr.bingyan.net/" target="_blank">
<div class="circle circle5" title="历届招新"></div>
<div class="hover-wrap"></div>
<div class="title">
<p class="en">Recruit</p>
<p class="ch">历届招新</p>
</div>
</a>
</li>
</ul>
在子模板中,向base.html传active
的值就行了,我们不只可以通过py文件向jinja2传值,还能在不同模板之间传值
{% extends "base.html" %}
{% set active = "group" %}
这样导航栏就能根据相应的内容显示高亮的li
了!更多内容参考官方文档
如何获取列表的长度?
jinja2支持很多Python的语法,于是我尝试调用len(lst)
函数,会报错。
要获取列表的长度,应该写成lst|length
或是它的别称lst|count
参考这个问题
jinja2问题集锦的更多相关文章
- 看完SQL Server 2014 Q/A答疑集锦:想不升级都难!
看完SQL Server 2014 Q/A答疑集锦:想不升级都难! 转载自:http://mp.weixin.qq.com/s/5rZCgnMKmJqeC7hbe4CZ_g 本期嘉宾为微软技术中心技术 ...
- Android之常见问题集锦Ⅱ
Android问题集锦Ⅰ:http://www.cnblogs.com/AndroidJotting/p/4608025.html EditText输入内容改变事件监听 _edit.addTextCh ...
- 自定义jinja2 过滤器
今天,我们要讲的是自定义jinja2 过滤器这个知识点,因为官方文档对此一代而过,讲得不够清楚,所以我们专门拿出来讲一下. 例子 例子写了两个自定义过滤器,一个是转换字典到字符串的过滤器,一个是返回当 ...
- Visual Studio问题集锦:coloader80.dll未正确安装
问题 今天在修改之前的一个项目的时候报了一个错,大概内容如下: 有一个 Visual Studio 的 DLL 文件(coloader80.dll)未正确安装.请通过"控制面板"中 ...
- Eclipse for Java EE软件操作集锦(二)
看本文章之前请确保已经了解eclipse建立web工程,如果有疑问请查看本系列文章第一篇 eclipse软件操作集锦(一) 1.我们添加一个servlet 配置一下web.xml测试一下是否能正常显示 ...
- Mysql 常用 SQL 语句集锦
Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...
- C/C++面试题集锦(一)
C/C++面试题集锦(一) */--> C/C++面试题集锦(一) 在类的头文件中进行声明然后在定义文件中实现有什么意义? 一方面使类的实现只编译一次,提高编译效率:另一方面可以实现类的接口和实 ...
- 通用js函数集锦<来源于网络> 【二】
通用js函数集锦<来源于网络> [二] 1.数组方法集2.cookie方法集3.url方法集4.正则表达式方法集5.字符串方法集6.加密方法集7.日期方法集8.浏览器检测方法集9.json ...
- 通用js函数集锦<来源于网络/自己> 【一】
通用js函数集锦<来源于网络/自己>[一] 1.返回一个全地址2.cookie3.验证用户浏览器是否是微信浏览器4.验证用户浏览器是否是微博内置浏览器5.query string6.验证用 ...
随机推荐
- 关于从SVN检出项目后,项目名称还是之前修改之前或者项目名称不对问题
找到工作空间Workspaces/项目名称/.projet 修改文件中<name>项目名称</name>属性即可
- java设计模式2--抽象工厂模式(Abstract Factory)
本文地址:http://www.cnblogs.com/archimedes/p/java-abstract-factory-pattern.html,转载请注明源地址. 抽象工厂模式(别名:配套) ...
- 【Networking】(转)一个非常好的epoll+线程池服务器Demo
(转)一个非常好的epoll+线程池服务器Demo Reply 转载自:http://zhangyafeikimi.javaeye.com/blog/285193 [cpp] /** 张亚霏修改 文件 ...
- 转: SVN使用教程总结(图文丰富,相当详细)
转自:http://www.cnblogs.com/armyfai/p/3985660.html SVN使用教程总结 SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生 ...
- [Compose] 17. List comprehensions with Applicative Functors
We annihilate the need for the ol' nested for loop using Applicatives. For example we have this kind ...
- Nodejs 天涯帖子《鹿鼎记中计》 柳成萌著 下载爬虫
功能:从天涯帖子中下载楼主发言到一个文本文件中 实验对象:http://bbs.tianya.cn/post-no05-308123-1.shtml <鹿鼎记中计> 柳成萌著 爬取效果: ...
- java梳理-一个汉字占多大空间
面试题:一个汉字占多大空间. 事实上这个问题我了解不深的,知道结论不知道为什么.借此梳理下认识. 先回想下java基本类型 一基本类型 :简称四类八种,声明变量的同一时候分配了空间.举比例如以下: ...
- Oracle DB 数据库维护
• 管理优化程序统计信息 • 管理自动工作量资料档案库(AWR) • 使用自动数据库诊断监视器(ADDM) • 说明和使用指导框架 • 设置预警阈值 • 使用服务器生成的预警 • 使用自动任务 数 ...
- taro 环境判断
Taro.ENV_TYPE ENV_TYPE.WEAPP 微信小程序环境 ENV_TYPE.SWAN 百度小程序环境 ENV_TYPE.ALIPAY 支付宝小程序环境 ENV_TYPE.TT 字节跳动 ...
- ie 已限制此网页运行脚本或Active控件
ie 已限制此网页运行脚本或Active控件 CreateTime--2018年3月12日16:49:43 Author:Marydon 情景还原: 在本地调试html页,如果其中包含js或fla ...