当前位置: 移动技术网 > IT编程>脚本编程>Python > Django从理论到实战(配置templates文件夹路径)

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

2020年07月05日  | 移动技术网IT编程  | 我要评论

学习笔记,仅供参考

参考自: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文件夹,并在其中创建我们的第一个模板文件:

<!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, '')

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

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网