Django中{% template tag %} 和 {{ variable }}应用

1. 概念

用两个大括号括起来的文字(例如 {{ variable }} )是 变量(variable) 。

被大括号和百分号包围的文本(例如 {% template tag %})是 模板标签(template tag)。标签(tag)定义比较明确,即:仅通知模板系统完成某些工作。

具体概念请见链接:

Django Template Language

https://docs.djangoproject.com/en/1.9/ref/templates/language/

2. 如何搭配应用?

注意template tag中不能够嵌套variable,所以如果需要同时使用的时候,用并列关系,而不是嵌套关系。

3. 举例

我有一个Movie的model,这个model的static_pic中存储了图片在静态文件夹的地址,静态文件夹通过{% load staticfiles %}先调用。

现在需要在template上显示图片,那么在src的双引号中,就需要把上面的静态文件夹和movie地址并列放在一起,如下

正确代码(注意下面这一段都在tag中)

img src=”{% static ‘movie/’ %}{{ movie.static_pic }}” alt=”{{ movie.name }}”

错误代码

img src=”{% static ‘movie/'{{ movie.static_pic }} %}” alt=”{{ movie.name }}”

这个错误代码会报这个错误:

Could not parse the remainder: ‘{‘ from ”movie/'{{‘

为什么呢?因为template tag中不能够嵌套variable,嵌套之后识别不出来。