首页 > 解决方案 > 我正在尝试在 Django 中添加一个新页面,但出现 404 错误,但我已经添加了 url 和视图

问题描述

我是一个新手,试图添加一个新页面,但收到以下错误:

Page not found (404)
Request Method:     GET
Request URL:    http://127.0.0.1:8000/study
Using the URLconf defined in student_management_system.urls, Django tried these URL patterns, in this order: 

我已经为页面添加了一个函数,Views.py并且还在URLS.py.

StudentViews.py---> 在学生管理应用程序文件夹中:

from django.shortcuts import render, redirect
from django.http import HttpResponse, HttpResponseRedirect
from django.contrib import messages
from django.core.files.storage import FileSystemStorage  # To upload Profile Picture
from django.urls import reverse
import datetime  # To Parse input DateTime into Python Date Time Object

from student_management_app.models import CustomUser, Staffs, Courses, Subjects, Students, Attendance, AttendanceReport, \
    LeaveReportStudent, FeedBackStudent, StudentResult 

def study(request):
    return render(request, "student_template/study.html")

Views.py---> 在学生管理应用程序文件夹中:

# from channels.auth import login, logout
from django.contrib.auth import authenticate, login, logout
from django.http import HttpResponseRedirect, HttpResponse
from django.shortcuts import render, redirect
from django.contrib import messages

from student_management_app.EmailBackEnd import EmailBackEnd

def home(request):
    return render(request, 'index.html')

def loginPage(request):
    return render(request, 'login.html')

def doLogin(request):
    if request.method != "POST":
        return HttpResponse("<h2>Method Not Allowed</h2>")
    else:
        user = EmailBackEnd.authenticate(request, username=request.POST.get('email'), password=request.POST.get('password'))
        if user != None:
            login(request, user)
            user_type = user.user_type
            #return HttpResponse("Email: "+request.POST.get('email')+ " Password: "+request.POST.get('password'))
            if user_type == '1':
                return redirect('admin_home')
                
            elif user_type == '2':
                # return HttpResponse("Staff Login")
                return redirect('staff_home')
                
            elif user_type == '3':
                # return HttpResponse("Student Login")
                return redirect('student_home')
            else:
                messages.error(request, "Invalid Login!")
                return redirect('login')
        else:
            messages.error(request, "Invalid Login Credentials!")
            #return HttpResponseRedirect("/")
            return redirect('login')

def get_user_details(request):
    if request.user != None:
        return HttpResponse("User: "+request.user.email+" User Type: "+request.user.user_type)
    else:
        return HttpResponse("Please Login First")

def logout_user(request):
    logout(request)
    return HttpResponseRedirect('/')

URLS.py---> 在学生管理应用程序文件夹中:

from django.urls import path, include
from . import views
from .import HodViews, StaffViews, StudentViews

urlpatterns = [
    path('', views.loginPage, name="login"),
    path('student_view_result/', StudentViews.student_view_result, name="student_view_result"),
    path('study/', StudentViews.study, name="study"),
    ]

Urls.py对于整个系统

from django.contrib import admin
from django.urls import path, include
from django.conf.urls.static import static
from student_management_system import settings

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('student_management_app.urls')),
]+static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

我该如何解决这个错误?为什么会报这个错误?

标签: django

解决方案


推荐阅读