Django首页正常渲染但登录/注册页面无法加载求助
问题描述
我有一个带CSS的简单HTML页面,尝试通过Django的urls.py和views.py渲染。首页index.html能正常显示,但登录signin.html和注册signup.html页面无法渲染,报错为TemplateDoesNotExist。
以下是我的代码:
views.py
from django.shortcuts import render import re # Create your views here. # checks valid email def is_valid_email(email): # Define the regex pattern for email validation pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$' return re.match(pattern, email) def home(request): return render(request,'index.html') def signup(request): return render(request,'signup.html') def signin(request): return render(request, 'signin.html')
应用级urls.py
from django.urls import path from . import views urlpatterns = [ path('', views.home), path('signup/', views.signup), path('signin/', views.signin), ]
项目级urls.py
from django.contrib import admin from django.urls import path, include from django.conf import settings from django.conf.urls.static import static urlpatterns = [ path('admin/', admin.site.urls), path('', include('app.urls')) ] if settings.DEBUG: urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
解决方案
出现TemplateDoesNotExist错误,核心原因是Django无法找到对应模板文件,按以下步骤排查:
检查模板文件路径
确保你的app目录下存在templates文件夹,且signup.html、signin.html和index.html都放在该文件夹内,正确目录结构如下:你的项目名/ app/ templates/ index.html signup.html signin.html views.py urls.py 你的项目名/ urls.py settings.py确认app已加入INSTALLED_APPS
打开项目根目录的settings.py,检查INSTALLED_APPS列表是否包含你的app名称(比如'app'),如果未添加,Django不会扫描该app的模板目录:INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app', # 必须添加这一行 ]校验模板文件名
确保文件名拼写完全一致,包括大小写(Linux系统下Django严格区分文件名大小写,避免出现Signup.html或sign_in.html这类错误命名)。清理Django缓存
开发环境下可运行以下命令清理模板缓存,之后重启服务器:python manage.py clearcache
内容的提问来源于stack exchange,提问作者Rohit
相关产品推荐
相关产品推荐

