所以基本上我是最近从PHP转换为Django(以及Python)。在PHP中,我习惯于能够自动执行许多操作,特别是在编写HTML时,我曾经能够编写<?php get_head() ?>
这样的命令,并且它将获取所有需要的meta
信息在HTML页面的<head></head>
内。是否有任何内置于Django中的功能,或者我是否必须手动编写所有HTML?
非常感谢任何指针。
答案 0 :(得分:1)
您会喜欢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/