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
相关文档:
我一直在用ultraedit看zope3的源代码.语法高亮设置可参考www.ultraedit.com
UltraEdit是一个很好的工具,但是默认不支持Python的语法高亮,下面是一个现成的WordFile片断,把这段文字Copy到UltraEdit下面的WORDFIL E.TXT文件中,保存后就可以看到UltraEdit对Python文件和语法的支持了^_^(注意,把/L11改为你的Wordfile的 ......
Python的ASCII, GB2312, Unicode , UTF-8
ASCII 是一种字符集,包括大小写的英文字母、数字、控制字符等,它用一个字节表示,范围是 0-127 Unicode分为UTF-8和UTF-16。
UTF-8变长度的,最多 6 个字节,小于 127 的字符用一个字节表示,与 ASCII 字符集的结果一样,ASCII 编码下的英语文本不需要修改就可以当作 UTF-8 编码 ......
>>> import string
>>> s='adbecf'
>>>
tt=string.maketrans("abc","ABC")
>>> s.translate(tt,"")
'AdBeCf'
>>>
s.translate(tt,"")
后面的那个空字符创就是你要删除的字符,比如要删除换行就是s.translate(tt,"\n&q ......
原文
http://www.hetland.org/python/instant-hacking.php
Instant Hacking[译
文]
译者: 肯定来过   ......