欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Django从理论到实战(配置templates文件夹路径)

程序员文章站 2022-06-20 21:59:54
学习笔记,仅供参考参考自:Django打造大型企业官网;本系列Blog以应用为主,理论基础部分我在后端专栏的Django系列博客已经写过了,如果有些需要补充的知识点,我会在这个系列中,尽量详细的记录一下。配置templates文件夹路径在项目的settings.py配置文件中,有一个TEMPLATES列表,这个列表中包含了模板引擎的配置,模板查找路径的配置,模板上下文的配置等:TEMPLATES = [ { 'BACKEND': 'django.template.ba...

学习笔记,仅供参考

参考自:Django打造大型企业官网;

本系列Blog以应用为主,理论基础部分我在后端专栏Django系列博客已经写过了,如果有些需要补充的知识点,我会在这个系列中,尽量详细的记录一下。



配置templates文件夹路径


在项目的settings.py配置文件中,有一个TEMPLATES列表,这个列表中包含了模板引擎的配置,模板查找路径的配置,模板上下文的配置等:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        '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',
            ],
        },
    },
]

  • 参数解释

DIRS:是一个列表,在这个列表中可以存放所有的模板路径,以后在视图中使用render或者render_to_string渲染模板的时候,会在这个列表的路径中查找模板,例如:

'DIRS': [os.path.join(BASE_DIR, 'templates')],
#设置的路径:项目的绝对路径/templates
#BASE_DIR全局变量,可以动态的获取项目绝对路径,无论我们把项目迁移到哪里

APP_DIRS:默认为True,这个设置为True后,Django会于APP下的templates文件夹中查找模板(前提是APP已经在INSTALLED_APPS列表中安装),我们在INSTALLED_APPS列表中安装的app如下:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'book',
    'cms',
    'front',
]

  • 模板查找顺序

对于代码render('list.html'),Django会先在DIRS列表的路径中依次查找有没有这个模板,如果有,就返回该模板文件。

如果在DIRS列表中所有的路径下都没有找到该模板文件,那么Django会先检查当前这个视图所处的app是否已经安装,如果已经安装了,那么就先在当前这个app下的templates文件夹中查找模板,如果没有找到,那么会在其他已经安装了的app中查找。如果所有路径下都没有找到,那么会抛出一个TemplateDoesNotExist的异常。


  • 举个例子

现在,我们利用模板来写一个页面。

首先,在主项目文件夹下创建templates文件夹,并在其中创建我们的第一个模板文件index.html:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>小黄之家</title>
    <style>
        h1 {
            color: pink;    
        }
    </style>
</head>
<body>
	<p>
    <h1>
    兔子喜食草
    </h2>
    <p>
    一般家庭饲养的兔子要注意食物的提供,因为幼兔没有饱感。
    蔬菜本来是不建议给幼兔吃的,容易得肠炎,成年后才可以适当提供
    </p>

	</p>
</body>
</html>

在主urls.py中创建一个路由:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.page),
    path('login/', views.login, name = "signin"),
    path('template/', views.template),
]

在主views.py中创建一个视图函数:

def template(request):
    return render(request, 'index.html')

向http://127.0.0.1:8000/template/发起请求:

Django从理论到实战(配置templates文件夹路径)

本文地址:https://blog.csdn.net/m0_37422217/article/details/107117617