所以本质上我是最近从PHP转换到Django(以及Python)的人。在PHP中,我习惯于能够自动化许多事情,尤其是在编写HTML时,我曾经能够编写诸如<?php get_head() ?>
之类的命令,它将获取HTML页面的<head></head>
中需要的所有meta
信息。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 %}
但哈米什是对的,请检查医生:https://docs.djangoproject.com/en/dev/topics/templates/