You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 07:00:26