django notes 三:Template 的查找

django 中有 2种 Template Loader

django.template.loaders.filesystem.Loader
django.template.loaders.app_directories.Loader

filesystem.Loader 会根据 settings 中  TEMPLATES 下配置的 DIRS  查找 template

TEMPLATES = [
    {
        ‘BACKEND‘: ‘django.template.backends.django.DjangoTemplates‘,
        ‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘)],
        ‘APP_DIRS‘: False,
        ‘OPTIONS‘: {
        },
    },
]

app_directories.Loader 顾名思义会到各个 app 下面的 templates 文件夹下去查找 template

 TEMPLATES = [
    {
        ‘BACKEND‘: ‘django.template.backends.django.DjangoTemplates‘,
        ‘DIRS‘: [],
        ‘APP_DIRS‘: True,
        ‘OPTIONS‘: {
        },
    },
]
APP_DIRS 为 True 表示启用 app_directories.Loader loader

通常把模板放到最外层和放到各个 app 下面都是一样的,公共的模板可以放在最外层,各个 app 相关的可以放到 app 下面,因为 app 是独立的,可能会被用到多个项目中。在各个 app 下面的 templates 文件夹下通常会多加一层文件夹,并以该 app  的名字来命名,这主要是为了防止模板重名, 因为当启用 app_directories.Loader 时 django 会从  INSTALLED_APPS  中从上到下依次查找各个app下的模板文件,  static 文件也是一样的。
INSTALLED_APPS = (
    ‘django.contrib.admin‘,
    ‘django.contrib.auth‘,
    ‘django.contrib.contenttypes‘,
    ‘django.contrib.sessions‘,
    ‘django.contrib.messages‘,
    ‘django.contrib.staticfiles‘,
    ‘blog‘,
)
时间: 2024-10-20 16:49:29

django notes 三:Template 的查找的相关文章

frist Django app — 三、 View

前面已经说过了Django中model的一些用法,包括orm,以及操作的api,接下来就是搭一些简单的界面学习view——Django中的view.主要介绍以下两个方面: url映射 请求处理 模板文件 url映射和请求处理共同构成了MVC中的C——controller,这里面涉及了url的写法(主要是正则表达式),接收页面传递过来的参数.在Django中可以使用template来进行页面渲染,这样可以直接使用传递过来的数据. url映射 这里紧接着上一篇的工程完善polls项目,polls网站

Django基础三之视图函数

Django基础三之视图函数 本节目录 一 Django的视图函数view 二 CBV和FBV 三 使用Mixin 四 给视图加装饰器 五 Request对象 六 Response对象 一 Django的视图函数view 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. 无论视图本身包含什么逻辑,都要返回响应.代码写在哪里也无所谓,只要它在你当前项

jQuery学习笔记之过滤器三(向上查找兄弟元素、向下查找兄弟元素)

向上查找兄弟元素的方法:prev方法.prevAll方法.prevUntil方法 向下查找兄弟元素:next方法.nextAll方法.nextUntil方法 向上查找兄弟元素 1.prev方法 2.prevAll方法 3.prevUntil方法 向下查找兄弟元素 1.next方法 2.nextAll方法 3.nextUntil方法 jQuery学习笔记之过滤器三(向上查找兄弟元素.向下查找兄弟元素)

Django[11]模板Template context和Bootstrap使用

视图views.py中: 1234567891011121314151617181920212223242526 from __future__ import unicode_literals from django.shortcuts import render # Create your views here.from django.http import HttpResponse def (request): context = { "title": "home&quo

Django——如何使用Template以及如何向template传递变量

如何使用模板系统 在Python代码中使用Django模板的最基本方式如下: 可以用原始的模板代码字符串创建一个 Template 对象, Django同样支持用指定模板文件路径的方式来创建 Template 对象; 调用模板对象的render方法,并且传入一套变量context.它将返回一个基于模板的展现字符串,模板中的变量和标签会被context值替换. ——————————————————————————————基本方法———————————————————————————————————

Django 第三课 【模板】

## 模板 在之前的章节中 ,视图函数只返回文本,而实际上生产环境中其实很少这样用,因为实际的页面大多数是带有样式的HTML代码,这可以让浏览器渲染出非常漂亮的页面.目前市面上有非常多的模板系统.其中最知名最好用的就是DTL 和Jinja2.DTL 是Django Temlate Language 三个单词的缩写.也就是Django自带的模板语言.当然也可以配置Django支持Jinja2等其他模板引擎,但是作为Django内置的模板语言,和Django可以达到无缝衔接而不会产生一些不兼容的情况

Django——模板层(template)(模板语法、自定义模板过滤器及标签、模板继承)

阅读目录(Content) 模板语法之变量 模板之过滤器 default length filesizeformat date slice truncatechars safe 模板之标签 自定义标签和过滤器 模板继承 (extend) 模板语法之include 前言:当我们想在页面上给客户端返回一个当前时间,一些初学者可能会很自然的想到用占位符,字符串拼接来达到我们想要的效果,但是这样做会有一个问题,HTML被直接硬编码在 Python代码之中. 1 2 3 4 def current_dat

django模版(Template)几种调用方式

同一模板,多个上下文 一旦有了 模板 对象,你就可以通过它渲染多个context, 例如: >>> from django.template import Template, Context >>> t = Template('Hello, {{ name }}') >>> print t.render(Context({'name': 'John'})) Hello, John >>> print t.render(Context(

python 学习第二十一天,django知识(三)

一,django的url路由系统总结 1,url(/index/,函数或者类) 2,url(/index/(\d+), 函数或者类) 3,url(/index/(?P<nid>\d+),函数或者类) 4,url(/index/(?P<nid>\d+),name="root",函数或者类) (1) 在views.py文件中通过reverse()反转url (2) 在templates中的文件中引用{% url 'root' 1 %} 5,url(/crm/,inc