什么是模板标签呢?

正如你在前面章节中所了解的那样, 我们并不能将python代码嵌入到HTML中。 因为浏览器不能识别python代码, 它只能解析HTML。 我们知道,HTML是静态页面,而python则显得更加动态。
Django模板标签允许我们将Python之类的内容翻译成HTML,所以你可以更快更简单的建立动态网站。哈哈!

展现文章列表模板

在之前的章节,我们给我们的模板一系列文章在post变量里。现在我们将在HTML里展现它。为了用模板标签在HTML中显示变量, 我们会使用两个大括号, 并将变量包含在里面,正如这样

  1. {{ posts }}

把之前在这个页面body 内的东西删除,换成 {{ posts }} 我们会发现,他显示之前通过 Django Shell 查询到的内容是一样。

这里的 posts 是上一节里面返回的值。

20170826150375922719343.png

使用循环

  1. {% for post in posts %}
  2. {{ post }}
  3. {% endfor %}

效果如下:
20170826150375980395779.png

修改Body 里面的内容

  1. {% for post in posts %}
  2. <div>
  3. <p>published: {{ post.published_date }}</p>
  4. <h1><a href="">{{ post.title }}</a></h1>
  5. <p>{{ post.text|linebreaksbr }}</p>
  6. </div>
  7. {% endfor %}

你注意到这次我们使用了一个明显不同的标记{{ post.title }}{{ post.text }}? 我们正在访问定义在Post模型中的每一个域。
此外,|linebreaksbr通过一个过滤器,使得行间隔编程段落。
20170826150375989783174.png
所有的在{% for %}{% endfor %} 之间的内容将会被Django对象列表中的每个对象所代替。
效果如下:
20170826150375998827969.png

部署到PythonAnywhere

  • 首先,我们将我们的代码放到Github ``` $ git status […] $ git add —all . $ git status […] $ git commit -m “Modified templates to display posts from database.” […] $ git push
  1. - 然后,重新登陆 [PythonAnywhere](https://www.pythonanywhere.com/consoles/) 并进入**Bash 控制台** (或重开一个),并运行:
  1. $ cd my-first-blog
  2. $ git pull
  3. [...]

```

错误解决

20170826150376097853609.png
git checkout -f 再重新 git pull 就可以了
参考解决办法:http://ritto.blog.51cto.com/427838/741342

Readload