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:




    
    Title


我是{{ name }}呀~

  • 方式一
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文件名有没有错

你可能感兴趣的:(django配置模板找不到html文件)