📜  渲染 django (1)

📅  最后修改于: 2023-12-03 15:11:08.581000             🧑  作者: Mango

渲染 Django

Django 是一个流行的 Python Web 框架,它提供了一些非常强大的工具来生成 HTML 内容。在 Django 中,你可以使用多种方式来渲染 HTML 页面,如使用 Django 模板语言(Django Template Language,DTL)或 Jinja2 模板引擎。本文将重点介绍 Django 模板语言的使用方法。

Django 模板语言

Django 模板语言是一种用于生成 HTML 内容的标记语言。它非常灵活,允许你创建各种类型的标记,从简单的文本到复杂的表单元素。此外,Django 模板语言还有很多内置的标记和过滤器,可以让你更方便地生成 HTML 内容。

创建模板

在 Django 中,你可以使用模板来定义你的 HTML 界面。模板是一个包含特定语法的文本文件,其中包含了 HTML 内容以及用于生成动态内容的标记和过滤器。你可以根据需要创建多个模板,每个模板都可以完成特定的任务。

例如,如果你需要创建一个包含文章列表的页面,你可以创建一个名为 articles.html 的模板文件,并按照以下方式编写其内容:

{% extends "base.html" %}

{% block content %}
{% for article in articles %}
<div class="article">
    <h2>{{ article.title }}</h2>
    <p>{{ article.content|truncatewords:30 }}</p>
</div>
{% endfor %}
{% endblock %}

在上面的代码中,我们使用了 Django 模板语言的一些基本语法,例如 {% for %}{{ }}。具体来说,我们定义了一个 content 块,其中包含了一个 for 循环,用于遍历所有文章列表并生成 HTML 内容。在每个文章中,我们输出了标题和内容,并使用内置的 truncatewords 过滤器截断了内容,以确保其不会太长。

加载模板

当你创建好了一个模板后,你需要使用 Django 的视图层来加载它并生成 HTML 内容。在 Django 中,你可以使用内置的 render 函数来完成这个任务。该函数会获取一个模板名称作为输入参数,并使用它来加载相应的模板。

下面是一个基本的视图函数示例,它加载上述 articles.html 模板并输出 HTML 内容:

from django.shortcuts import render
from .models import Article

def articles_page(request):
    articles = Article.objects.all()
    return render(request, 'articles.html', {'articles': articles})

在上面的代码中,我们使用内置的 render 函数来加载 articles.html 模板,并将所有文章传递给模板。最后,我们将通过 HTTP 响应返回生成的 HTML 内容。

总结

至此,我们已经详细介绍了 Django 模板语言的基本用法。通过使用模板、视图和模型,你可以轻松地生成专业的 HTML 内容,从而创建强大的 Web 应用程序。如果你正在学习 Django,我建议你多写几个模板,以便更好地理解其中的语法和过滤器,从而更好地掌握这个强大的框架。