Я хочу, чтобы моя страница login.html отображалась первой как целевая страница в моем приложении Python и Django. Но в файле urls.py проекта на сервере появляется ошибка, как только я нажимаю кнопку ввода после ввода имени пользователя и пароля.
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('', include('tabs_app.urls')),
path('admin/', admin.site.urls),
path('accounts/', include('accounts.urls'))
]
Файл VIEWS.py приложения в проекте, в котором находится файл index.html:
from django.shortcuts import render
# Create your views here.
def login(request):
return render(request, 'login.html')
Файл URLS.py приложения в проекте, в котором расположен файл index.html:
from django.urls import path
from . import views
urlpatterns = [
path('', views.login, name='login')
]
Файл VIEWS.py приложения, в котором написан код LOGIN:
from django.shortcuts import render, redirect
from django.contrib import messages
from django.contrib.auth.models import User, auth
# Create your views here.
def login(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = auth.authenticate(username=username,password=password)
if user is not None:
auth.login(request, user)
return redirect('/')
else:
messages.info(request, 'invalid credentials')
return redirect('login')
else:
return render(request, 'login.html')
Файл URLS.py приложения, в котором написан код LOGIN:
from django.urls import path
from . import views
urlpatterns = [
path('login', views.login, name='login')
]
СООБЩЕНИЕ ОБ ОШИБКЕ, поступающее на локальный сервер:
Page not found (404)
Request Method: POST
Request URL: http://127.0.0.1:8000/login
Using the URLconf defined in tabs_pilot.urls, Django tried these URL patterns, in this order:
1. [name='login']
2. admin/
3. accounts/
^media/(?P<path>.*)$
The current path, login, didn't match any of these.
You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.