为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Django 中的每个页面上显示单独的标题

如何在 Django 中的每个页面上显示单独的标题

绝地无双 2023-12-19 16:32:41
我有一个 Django 网站,我已将 html 文件分成 base.html 文件,如下所示:{% include 'head.html' %}<body>    {% include 'nav.html' %}    {% block content %}    {% endblock content %}    {% include 'footer.html' %}    {% include 'scripts.html' %}</body></html>由于包含 head.html,每个页面上的标题都是相同的,因为 head.html 只有 1 个标题。这是 head.html 文件:<head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <link rel="stylesheet" href="{% static 'css/materialize.css' %}">    <link rel="stylesheet" href="{% static 'css/materialize.min.css' %}">    <link rel="stylesheet" href="{% static 'css/style.css' %}">    <link rel="stylesheet" href="{% static 'css/custom.css' %}">    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">    <title>mytitle</title></head>但我想为不同的页面显示不同的标题,但我不知道该怎么做。有人有什么想法吗?
查看完整描述

4 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

基本.html


{% include 'head.html' with  title=title %}


<body>

    {% include 'nav.html' %}


    {% block content %}

    {% endblock content %}


    {% include 'footer.html' %}


    {% include 'scripts.html' %}

</body>



</html>

视图.py


def home(request):

    context = {

       "title":"Home"

     }

   return render(request,"template",context)

head.html


<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <link rel="stylesheet" href="{% static 'css/materialize.css' %}">

    <link rel="stylesheet" href="{% static 'css/materialize.min.css' %}">

    <link rel="stylesheet" href="{% static 'css/style.css' %}">

    <link rel="stylesheet" href="{% static 'css/custom.css' %}">

    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">

    <title>{{title}}</title>

</head>


查看完整回答
反对 回复 2023-12-19
?
开满天机

TA贡献1786条经验 获得超12个赞

使用include而不是扩展base.html并将动态标题传递给base.html

django 链接:包含

{% include "base.html" with objects=website.title %}


查看完整回答
反对 回复 2023-12-19
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

我根据我的知识给出这个答案:


为此创建一个文件: head.html


<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<link rel="stylesheet" href="{% static 'css/materialize.css' %}">

<link rel="stylesheet" href="{% static 'css/materialize.min.css' %}">

<link rel="stylesheet" href="{% static 'css/style.css' %}">

<link rel="stylesheet" href="{% static 'css/custom.css' %}">

<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">

为不同的标题制作不同的文件: 标题1.html


<title>mytitle</title>

标题2.html


<title>mytitle</title>

现在像这样添加到您的主文件中:


<head>

{% include 'head.html' %}

{% include 'title1.html' %}

</head>

<body>

    {% include 'nav.html' %}


    {% block content %}

    {% endblock content %}


    {% include 'footer.html' %}


    {% include 'scripts.html' %}

</body>



</html>

我希望这对你有用。


查看完整回答
反对 回复 2023-12-19
?
慕工程0101907

TA贡献1887条经验 获得超5个赞

使用可覆盖的块:


head.html


...

<title>{% block page_title %}{% endblock %}</title>

my_concrete_page.html


{% extends base.html %}


{% block page_title %}my concrete title{% endblock %}


查看完整回答
反对 回复 2023-12-19
  • 4 回答
  • 0 关注
  • 124 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信