Django - 自动化某些模板行为

时间:2013-08-14 00:16:02

标签: python django django-templates

所以基本上我是最近从PHP转换为Django(以及Python)。在PHP中,我习惯于能够自动执行许多操作,特别是在编写HTML时,我曾经能够编写<?php get_head() ?>这样的命令,并且它将获取所有需要的meta信息在HTML页面的<head></head>内。是否有任何内置于Django中的功能,或者我是否必须手动编写所有HTML?

非常感谢任何指针。

1 个答案:

答案 0 :(得分:1)

您会喜欢extendsblock代码。

假设您已经有一个模板化页面,您可以像这样提取HTML页面的基本设置:

创建名为base.html的模板:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>{% block title %}{% endblock %}</title>
    {% block head %}{% endblock %}
  </head>
  <body>
    {% block body %}
      Empty page.
    {% endblock %}
  </body>
</html>

现在,在名为page.html的页面模板中,您可以扩展基本模板并覆盖任何块:

{% extends "base.html" %}
{% block title %}Page 1 title{% endblock %}
{% block body %}
   Real page content.
   {% block main %}
      Subpage of page.html can also override this main block.
   {% endblock %}
{% endblock %}

但是Hamish是对的,请查看文档: https://docs.djangoproject.com/en/dev/topics/templates/

相关问题