Python的Django框架中TEMPLATES项的设置教程

以下是关于“Python的Django框架中TEMPLATES项的设置教程”的完整攻略,内容包含两条示例说明:

1. 什么是 Django Templates?

Django Templates 是 Django 框架中的模板引擎,用于构建网站的用户界面。

2. 如何在 Django 中设置 TEMPLATES?

在 Django 中,TEMPLATES 变量通过设置 BASE_DIR 和 os 模块中的 join() 方法来定义。

# settings.py

# 设置模板目录
TEMPLATES_DIR = os.path.join(BASE_DIR, 'templates')

# 设置 Django 模板引擎
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [TEMPLATES_DIR],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
              'django.template.context_processors.debug',
              'django.template.context_processors.request',
              'django.contrib.auth.context_processors.auth',
              'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

以上代码中:

  • TEMPLATES_DIR 存放模板的目录;
  • BACKEND 引擎设为 Django 自带的后端;
  • DIRS 设置一个可包含模板的目录列表;
  • APP_DIRS 则是告知 django 在每个应用目录下寻找模板文件(即该应用在 INSTALLED_APPS 中被添加或已经被调用)。

3. 示例1:如何编写 Django 模板?

通过以下代码来理解创建一个模板并插入数据:

<!-- hello.html -->

<!doctype html>

<html>
<head>
    <title>Hello World!</title>
</head>

<body>
    <h1>Hello, {{ name }}!</h1>

    <p>Welcome to my Django website.</p>
</body>
</html>

上述代码使用 {{ name }} 占位符来传递参数。在以下视图中展示该模板:

# views.py

from django.shortcuts import render

def hello(request):
    return render(request, 'hello.html', {'name': 'William'})
  • render() 函数将请求、模板名称和一个字典作为参数,该字典包含要传递到模板中的值。
  • 该视图将视图返回为响应对象,该响应对象包括渲染的模板、请求上下文和模板渲染上下文。

4. 示例2:如何扩展模板?

借助 extends 标签来扩展模板,如以下代码所示:

<!-- base.html -->

<!doctype html>

<html>
<head>
    <title>{% block title %}{% endblock %}</title>
</head>

<body>
    <h1>{% block content %}{% endblock %}</h1>

    <p>Welcome to my Django website.</p>
</body>
</html>

在此基础上,可以方便地扩展出想要的新模板:

<!-- child.html -->

{% extends "base.html" %}

{% block title %}
    About Me
{% endblock %}

{% block content %}
    <p>Hi, my name is William.</p>
{% endblock %}
  • base.html 扩展到新页面 child.html
  • 使用块来标记新页面中不同于基模板的部分。
  • 在新页面中,使用 extends 改变标题和内容。

希望这篇攻略对你有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python的Django框架中TEMPLATES项的设置教程 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • [django]django配合前端vue前后端联调,django服务端解决跨域(django-cors-headers)

    https://www.cnblogs.com/iiiiiher/articles/9164940.html 前端写了个页面,里面$.post发现403错误. 需要注释下 前后端联调的跨域问题 前端可能是127.0.0.1:3000 后端127.0.0.1:8080导致前端不能正常访问 https://github.com/ottoyiu/django-co…

    Django 2023年4月10日
    00
  • django models分页

    utils/pager.py class Pagination(object): def __init__(self, current_page, all_count, base_url, query_params, per_page=30, pager_page_count=11): “”” 分页初始化 :param current_page: 当前页码 …

    Django 2023年4月11日
    00
  • Django框架视图介绍与使用详解

    下面是对“Django框架视图介绍与使用详解”的完整攻略。 Django框架视图介绍与使用详解 什么是Django视图 Django中的视图是一个Python函数或类,它接收HTTP请求并返回HTTP响应。视图的作用是将请求中的数据进行处理,然后通过模板或其他响应方式将其呈现给用户。 Django视图的类型 在Django中,视图大体上可以分为两种类型:函数…

    Django 2023年5月15日
    00
  • Django中的DRF框架视图集使用

    1. 两个基类 1)APIView Django REST_framework 中所有视图的基类是APIView   父类是View 支持定义的属性: authentication_classes 列表或元祖,身份认证类 permissoin_classes 列表或元祖,权限检查类 throttle_classes 列表或元祖,流量控制类 在APIView中…

    Django 2023年4月16日
    00
  • Django之ORM性能优化建议

    前言   DjangoORM数据层提供各种途径优化数据的访问。   如果事先理解Django的优化技巧,开发过程中稍稍留意,后期会省不少的工作量。 正题 一,利用标准数据库优化技术 传统数据库优化技术博大精深,不同的数据库有不同的优化技巧,但重心还是有规则的。在这里算是题外话,挑两点通用的说说:  索引,给关键的字段添加索引,性能能更上一层楼,如给表的关联字…

    Django 2023年4月13日
    00
  • 详解Django的FBV与CBV模式

    Django是一个非常流行的Web框架,它提供了多种开发模式来满足开发者的各种需求。在这篇文章中,我们将详细介绍Django的两种常见的视图开发模式:函数视图(FBV)和基于类的视图(CBV)。 函数视图(FBV) Django最初的设计就是基于函数视图的方式,这种视图的实现非常简单,所有相关的代码都写在一个函数中。一个典型的函数视图如下: from dja…

    Django 2023年3月12日
    00
  • 启动Django项目

    Django是一个高效、灵活、模块化的Python web框架,用于快速开发Web应用程序。Django的核心包括模型、视图和模板,它们可以帮助开发人员快速构建功能强大的Web应用程序,并提供一种易于使用的API来连接不同的组件。 在这篇文章中,我们将学习如何启动Django项目。下面是详细的步骤: 首先,确保你安装了Python。 你需要安装Python才…

    Django 2023年3月12日
    00
  • python web框架【补充】cookie和session(Django)

    一、cookie和session的介绍 cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此cookie就是在这样一个场景下诞生。 cookie的工作原理是:由服务器产生内容,浏览器收到请求后保存在本地;当浏览器再次访问时,浏览器会自动带上cookie,这样服务器就能通过cookie的内容来判断这个是“…

    Django 2023年4月12日
    00
合作推广
合作推广
分享本页
返回顶部