什么是模板标签呢?
正如你在前面章节中所了解的那样, 我们并不能将python代码嵌入到HTML中。 因为浏览器不能识别python代码, 它只能解析HTML。 我们知道,HTML是静态页面,而python则显得更加动态。
Django模板标签允许我们将Python之类的内容翻译成HTML,所以你可以更快更简单的建立动态网站。哈哈!
展现文章列表模板
在之前的章节,我们给我们的模板一系列文章在post
变量里。现在我们将在HTML里展现它。为了用模板标签在HTML中显示变量, 我们会使用两个大括号, 并将变量包含在里面,正如这样
{{ posts }}
把之前在这个页面body 内的东西删除,换成 {{ posts }}
我们会发现,他显示之前通过 Django Shell 查询到的内容是一样。
这里的 posts 是上一节里面返回的值。
使用循环
{% for post in posts %}
{{ post }}
{% endfor %}
效果如下:
修改Body 里面的内容
{% for post in posts %}
<div>
<p>published: {{ post.published_date }}</p>
<h1><a href="">{{ post.title }}</a></h1>
<p>{{ post.text|linebreaksbr }}</p>
</div>
{% endfor %}
你注意到这次我们使用了一个明显不同的标记{{ post.title }}
或 {{ post.text }}
? 我们正在访问定义在Post
模型中的每一个域。
此外,|linebreaksbr
通过一个过滤器,使得行间隔编程段落。
所有的在{% for %}
和 {% endfor %}
之间的内容将会被Django对象列表中的每个对象所代替。
效果如下:
部署到PythonAnywhere
- 首先,我们将我们的代码放到Github ``` $ git status […] $ git add —all . $ git status […] $ git commit -m “Modified templates to display posts from database.” […] $ git push
- 然后,重新登陆 [PythonAnywhere](https://www.pythonanywhere.com/consoles/) 并进入**Bash 控制台** (或重开一个),并运行:
$ cd my-first-blog
$ git pull
[...]
```
错误解决
先 git checkout -f
再重新 git pull
就可以了
参考解决办法:http://ritto.blog.51cto.com/427838/741342