django配置模板找不到html文件

django模版

模板时可以根据字典数据动态改变html网页,是和视图层进行交互,由是涂层动态传递数据并渲染在html网页中的
html中使用{{变量名}}动态接收变量数据

django模板的配置:

  1. 在settings.py的对应dirs处配置路径,两种方法:
    a. BASE_DIR / 'templates'
    b. 在TEMPLATES外面import os->os.path.join(BASE_DIR , 'templates')
import os
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        # 配置模版url
        'DIRS': [os.path.join(BASE_DIR , 'templates')],
        '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',
            ],
        },
    },
]

由于创建的django默认不带templates文件夹的,需要自己创建,这里要注意是在最外层项目名下面创建,也就是和manage.py平级的

模板的加载方式

html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>我是{{ name }}呀~</h1>
</body>
</html>
  • 方式一
def test_html(request):
    t = loader.get_template('test_html.html')
    dic = {'name':'zhangsan','age':20}
    html = t.render(dic)
    return HttpResponse(html)
  • 方式二

def test_html2(request):
    dic = {'name': 'zhangsan', 'age': 20}
    return render(request,'test_html.html',dic)

urls.py:

urlpatterns = [
    path('admin/', admin.site.urls),
    # 测试带模板
    path('test_html/', view.test_html),
    # 测试带模板
    path('test_html2/', view.test_html2)
]

如果报错django.template.exceptions.TemplateDoesNotExist: test_html.html
一定要重点检查以下部分:

  1. 你的templates有没有拼错
  2. templates是否是和manage.py平级, BASE_URL的路径是最外层项目名,如果使用绝对路径不报错的话,多半就是这里的问题了
  3. 检查html文件名有没有错
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容