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

网友投稿 419 2022-09-27

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

学习笔记,仅供参考

参考自: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:

小黄之家

兔子喜食草

一般家庭饲养的兔子要注意食物的提供,因为幼兔没有饱感。 蔬菜本来是不建议给幼兔吃的,容易得肠炎,成年后才可以适当提供

在主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/发起请求:

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Spring 代码技巧梳理总结让你爱不释手
下一篇:第三次学JAVA再学不好就吃翔(part87)--Arrays工具类的asList方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~