所以基本上我是最近从 PHP 转换到 Django(和 Python)的人。在 PHP 中,我习惯于将许多事情自动化,尤其是在编写 HTML 时,我曾经能够编写诸如此类的命令,<?php get_head() ?>
并且它会获取HTML 页面meta
内需要的所有信息。<head></head>
Django 中是否内置了任何此类功能,还是我必须手动编写所有 HTML?
非常感谢您的任何指点。
所以基本上我是最近从 PHP 转换到 Django(和 Python)的人。在 PHP 中,我习惯于将许多事情自动化,尤其是在编写 HTML 时,我曾经能够编写诸如此类的命令,<?php get_head() ?>
并且它会获取HTML 页面meta
内需要的所有信息。<head></head>
Django 中是否内置了任何此类功能,还是我必须手动编写所有 HTML?
非常感谢您的任何指点。
你会喜欢extends
和block
标签。
假设您已经有了一个模板页面,您可以像这样提取 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/