Django模板

什么是模板标签呢?

正如你在前面章节中所了解的那样, 我们并不能将python代码嵌入到HTML中。 因为浏览器不能识别python代码, 它只能解析HTML。 我们知道,HTML是静态页面,而python则显得更加动态。

Django模板标签允许我们将Python之类的内容翻译成HTML,所以你可以更快更简单的建立动态网站。哈哈!

展现文章列表模板

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

    {{ posts }}

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

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

20170826150375922719343.png

使用循环

    {% for post in posts %}
        {{ post }}
    {% endfor %}

效果如下:

20170826150375980395779.png

修改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通过一个过滤器,使得行间隔编程段落。

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
  • 然后,重新登陆 PythonAnywhere 并进入Bash 控制台 (或重开一个),并运行:
    $ cd my-first-blog
    $ git pull
    [...]

错误解决

20170826150376097853609.png

git checkout -f 再重新 git pull 就可以了

参考解决办法:http://ritto.blog.51cto.com/427838/741342

Readload

Comments
Write a Comment