Django中模板文件夹templates的定义与使用

Django中模板文件夹templates的定义与使用

一,Django 中templates模板文件夹

在这里插入图片描述
图1 测试的时候如果出现以上错误“TemplateDoesNotExist at /t1/”

这个是因为默认情况下,Django会在每个应用的根目录下查找名为"templates"的文件夹
在Django中,
也可以使用自定义的模板文件夹名字,但是需要在项目中重新设置settings.py中模板的配置。settings.py中 找到TEMPLATES设置中,可以根据需要设置应用app的模板文件夹的名称和路径。

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            # 其他模板文件夹路径...
            os.path.join(BASE_DIR, 'yourapp/views'),
        ],
        # 其他设置...
    },
]

上述配置中,os.path.join(BASE_DIR, 'yourapp/template文件夹名字')指定了应用下模板文件夹的路径

二、应用

具体操作如下:
假设,某个项目d2 项目下有app应用(my1),在app 应用my1目录下建立了两个模板文件夹: templates,templates1,如图1中的①②
在这里插入图片描述 图2
需要在 项目的settings.py 中修改环境,找到 图③中的模板设置位置:TEMPLATES=
按照一中介绍的格式进行添加两个目录:
在这里插入图片描述 图3

三、扩展

在Django应用的根目录下,可以创建多个模板文件夹来组织和管理模板文件。这样做可以更好地分类和区分不同类型或功能的模板。

这样在应用的根目录下创建任意数量的模板文件夹,可以根据自己的需求和项目的组织结构来命名和划分这些文件夹。例如,我们可以创建一个名为"templates"的主文件夹,并在其中创建多个子文件夹,每个子文件夹用于存放特定类型的模板。

以下是一个示例:

app/
    ├── templates/
    │   ├── base.html
    │   ├── partials/
    │   │   ├── header.html
    │   │   └── footer.html
    │   ├── auth/
    │   │   ├── login.html
    │   │   ├── register.html
    │   │   └── reset_password.html
    │   └── blog/
    │       ├── post_list.html
    │       ├── post_detail.html
    │       └── post_create.html
    ├── models.py
    ├── views.py
    └── ...

在上面的示例中,你可以看到在"templates"文件夹下创建了三个子文件夹:“partials”、“auth"和"blog”,每个子文件夹都用于存放特定类型的模板文件。这样的组织结构可以更好地管理和定位模板文件。

要使用这样的自定义结构需要在settings.py中提供正确的路径。

在Django的设置文件(通常是settings.py)中,你需要对TEMPLATES设置进行适当的配置,以指定多个模板文件夹的位置。

按照刚才的扩展方式,对应的settings.py 中,要如何进行设置呢,在TEMPLATES设置中配置多个模板文件夹:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            os.path.join(BASE_DIR, 'yourapp/templates'),
            os.path.join(BASE_DIR, 'yourapp/templates/partials'),
            os.path.join(BASE_DIR, 'yourapp/templates/auth'),
            os.path.join(BASE_DIR, 'yourapp/templates/blog'),
            # 其他模板文件夹路径...
        ],
        # 其他设置...
    },
]

在上述示例中,DIRS列表包含了多个模板文件夹的路径。
需要确保在每个路径中使用os.path.join(BASE_DIR, ...)来构建完整的文件夹路径,其中BASE_DIR是Django项目的根目录。

一旦你在settings.py中完成了这样的配置,Django在查找和加载模板文件时将会搜索这些指定的模板文件夹。

请注意,当在视图函数或模板中引用模板文件时,只需提供相对于这些模板文件夹的路径。例如,如果要引用"blog/post_list.html"模板,可以直接使用'blog/post_list.html'作为模板名称。

这样,就可以在settings.py中配置多个模板文件夹的位置,以便Django能够正确地查找和加载模板文件。

例如,在视图函数中返回一个模板时,可以使用相对路径指定模板的位置,如return render(request, 'blog/post_list.html')
比如二中的例子,我们可以在settings.py中设置好后直接使用相对地址,如图2–》可改为图3代码形式。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值