Django的模板用{% %}和{{ }}标记标签和变量,如下这种格式:
<div class="r">
{% if perms.news.add_article %}
<a href='/news/add/'>添加新闻</a> |
{% endif %}
{% if perms.manager.view_admin and perms.news.delete_comment %}
<a href='/manager/news/commentlist/'>管理评论</a> |
{% endif %}
{% if user.is_authenticated %}
<a href='/user/{{ user.id }}/'>{{ user.username }}</a> |
<a href='/user/logout/'>退出</a>
{% else %}
<a href='/user/register/'>注册</a> |
<a href='/user/login/'>登录</a>
{% endif %}
</div>
但是我更喜欢ruby on rails的模板风格(类似asp),也可能是我以前写惯了asp的缘故:
<div class="r">
<% if perms.news.add_article %>
<a href='/news/add/'>添加新闻</a> |
<% endif %>
<% if perms.manager.view_admin and perms.news.delete_comment %>
<a href='/manager/news/commentlist/'>管理评论</a> |
<% endif %>
<% if user.is_authenticated %>
<a href='/user/<%= user.id %>/'><%= user.username %></a> |
<a href='/user/logout/'>退出</a>
<% else %>
<a href='/user/register/'>注册</a> |
<a href='/user/login/'>登录</a>
<% endif %>
</div>
感觉这样看上去更舒服,花括号{}夹杂在尖括号<>里面很难看,如果想在Django模板中使用这种格式的模板怎么办?只要做稍微的修改就能实现:
1、跳到你Django安装的路径,大约在/usr/local/lib/python2.6/dist-packages/django/
vi template/base.py
2、修改
BLOCK_TAG_START = '{%'
BLOCK_TAG_END = '%}'
VARIABLE_TAG_START = '{{'
VARIABLE_TAG_END = '}}'
为:
BLOCK_TAG_START = '<%'
BLOCK_TAG_END = '%>'
VARIABLE_TAG_START = '<%='
VARIABLE_TAG_END = '%>'
修改:
token = Token(TOKEN_VAR, token_string[2:-2].strip())
为:
token = Token(TOKEN_VAR, token_string[3:-2].strip())
(即修改2为3)
OK,以后就可以以rails的风格写Django模板了