python下的web开发框架 Django,django模板的使用
模板是简单的文本文件,它可以是html格式或是xml,csv等格式的
模板包括变量,括它会被值所替代当运行时,以及标签它控制模板的逻辑运算如if,else等
下面是一个简单的模板,我们将会对它做详细的说明
{% extends "base_generic.html" %}
{% block title %}{{ section.title }}{% endblock %}
{% block content %}
<h1>{{ section.title }}</h1>
{% for story in story_list %}
<h2>
<a href="{{ story.get_absolute_url }}">
{{ story.headline|upper }}
</a>
</h2>
<p>{{ story.tease|truncatewords:"100" }}</p>
{% endfor %}
{% endblock %}
变量
{{ variable }} 双括号里面的叫变量,当你前面如果存入一个变量的话,它将会用变量名所对应的值来替换双括号里面的值
使用 (.)来获得变量的属性(技术上当你在变量后输入.后它会依次去找对应的字典,属性,方法,列表index的值)
在上面的例子中。{{ section.title }}将会被section对象的title属性的值所替换
如果你使用的变量的不存在的话,模板系统将会插入''值也就是空值来做为默认值
模板过滤
你可以改变变量的显示方式如:全部大写,使用过滤
{{ name|lower }}就是一个简单的过滤,类似于linux操作系统的管道,它将会显示变量name的值,但是显示name的值之前经过lower这个过滤器,它将会把变量值转换成小写,我们使用|来提供一个过滤器
过滤可以以"链接",就是把一个变量经过过滤后的值再次过滤
如:{{ text|escape|linebreaks }} 就是输出text变量的值,然后转换为使用<p>的格式来显示 (需要验证是什么意思)
一些过滤要参数,如{{ bio|truncatewords:30 }},这个过滤器将会量示bio变量的前30个字符
过滤参数如果包含空格必须引用,如:{{ list|join:", " }},join一个列表使用,做为分隔附
django提供了三十个内置的过滤器,具体的就不一一说了,下面列几个常用的
例:
1.
{{ value|default:"nothing" }}
如果value的值没有提供或者为空,这时这个变量的值将会被设为nothing
2.
{{ value|length }}
返回value变量的长度,value可以为String或者是列表list
如:value值如为 ['a', 'b', 'c', 'd'],将会输出4
3.
{{ value|striptags }}
去掉html标签显示,如:如果你的value值为"<b>Joel</b> <button>is</button> a <span>slug</span>"
将会去掉ht
相关文档:
Mako是什么?Moko是Python写的一个模板库,Python官网python.org用的就是它哦。其他废话也就不累赘了,直接来点代码,方便阅读与了解把。
(Mako官网地址:http://www.makotemplates.org/ ,可以下载安装包,推荐使用easy_install安装)
from mako.template import Template
mytemplate = Template("hello world!") ......
在 python的lib目录里有一个:this.py,它其实是隐藏着一首诗,源码如下:
s =
"""Gur Mra bs Clguba, ol Gvz Crgref
Ornhgvshy vf orggre guna htyl.
Rkcyvpvg vf orggre guna vzcyvpvg.
Fvzcyr vf orggre guna pbzcyrk.
Pbzcyrk vf ......
为了选择一个合适的脚本语言学习,今天查了不少有关Perl,Python,Ruby,Javascript的东西,可是发现各大阵营的人都在吹捧自己喜欢的语言,不过最没有争议的应该是Javascript现阶段还不适合用来做独立开发,它的天下还是在web应用上。 我主要是想做数据挖掘算法的研究,应该会处理大量的文本。提到文本处理,相信大部分人 ......
Python中执行系统命令常见方法有两种:
两者均需 import os
(1) os.system
# 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息
system(command) -> exit_status
Execute the command (a string) in a subshell.
# 如果再命令行下执行,结果直接打印出来
>>> os. ......