(二)模板templates

Django模板层是为动态生成html服务的,非本文重点。前后端分离的设计更为常见,尽量少的涉及Django模板层内容。本文记录Django如何找到一个html文件。

模板文件

在创建一个Django项目project后,目录下会生成一个同名目录和manage.py。创建一个app,并为app编写一个视图,如:

from django.shortcuts import render

# Create your views here.
def index(request):
    return render(request, 'index.html')

当通过路由访问index视图函数时,会返回index.html文件,这个文件从何处获取?

搜寻路径

每创建一个app,都需要在全局配置文件(/project/project/settings.py)中注册,Django会按照注册顺序,依次寻找各app目录下templates目录下的index.html文件。如果各app中文件名称相同,则返回注册靠前的app下的html文件。

一个解决重名的方式是创建html文件时,添加app名作为前缀,如“app1_index.html”。另一种方式,可以将html文件统一管理,进行全局配置。

模板配置

在project目录下创建templates(名称随意,不建议更改)文件夹(与manage.py同级),并进行全局配置/project/project/settings.py: (os module需要导入)

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        '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的DIRS项,之后Django会在根目录下的templates寻找。

为了解决重名问题,可在templates下为各app建立目录,如上述index.hltml可放在/project/templates/app1/index.hltml,当app2有index时,可放在/project/templates/app2/index.hltml。

app1中index视图,可更改为:

from django.shortcuts import render

# Create your views here.
def index(request):
    return render(request, '1/index.html')

相关推荐

  1. 模板templates

    2024-01-16 15:48:02       53 阅读
  2. 模板方法模式Template Method)

    2024-01-16 15:48:02       54 阅读
  3. Ansible——template模块

    2024-01-16 15:48:02       33 阅读
  4. C++之模板template

    2024-01-16 15:48:02       44 阅读
  5. 【设计模式】13、template 模板模式

    2024-01-16 15:48:02       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-16 15:48:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-16 15:48:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-16 15:48:02       82 阅读
  4. Python语言-面向对象

    2024-01-16 15:48:02       91 阅读

热门阅读

  1. openharmony 编译LLVM编译器基础架构

    2024-01-16 15:48:02       56 阅读
  2. 数据结构和算法笔记

    2024-01-16 15:48:02       51 阅读
  3. Linux下防火墙相关命令整理【转】

    2024-01-16 15:48:02       51 阅读
  4. Python使用函数输出指定范围内Fibonacci数的个数

    2024-01-16 15:48:02       53 阅读
  5. DelayQueue

    2024-01-16 15:48:02       36 阅读
  6. openssl3.2 - 官方demo学习 - pkey - EVP_PKEY_DSA_keygen.c

    2024-01-16 15:48:02       49 阅读
  7. Linux ldd/ld/ldconfig命令

    2024-01-16 15:48:02       49 阅读