5.1 Django
我们使用的例子正如写的那么简单,假设我们有一个包含了用户名的funllname属性的user对象。在Python中我们这样向模板中传递当前用户:
def a_view(request):
# get the logged in user
# ... do more things
return render_to_response(
"view.html",
{"user": cur_user}
)
拥有这个模板的上下文很简单,传入一个Python对象的字典和模板使用的数据结构。现在我们需要在页面上渲染他们的名字,以防页面忘了他们是谁。
{% if user %}
You are logged in as {{ user.fullname }}
{% endif %}
首先,你会注意到这个 {% if user %} 概念。在Django模板中, {%用来控制循环和条件的声明。这里的if user声明是为了防止那些不是用户的情况。匿名用户不应该在页面头部看到“你已经登录”的字样。
在if块内,你可以看到,包含名字非常的简单,只要用{{}}包含着我们要插入的属性就可以了。{{是用来向模板插入真实值的,如{{ user.fullname }}。
模板的另一个常用情况是展示一组物品,如一个电子商务网站的存货清单页面。
def browse_shop(request):
# get items
return render_to_response(
"browse.html",
{"inventory": all_items}
)
在模板中,我们使用同样的{%来循环清单中的所有条目,并填入它们各自的页面地址。
{% for widget in inventory %}
{{ widget.displayname }}{% endfor %}
为了做大部分常见的模板任务,Django可以仅仅使用很少的结构来完成目标,因此很容易上手。