Ошибка при входе на локальный сервер при входе в приложение Python и Django - PullRequest
0 голосов
/ 28 октября 2019

Я хочу, чтобы моя страница 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.

1 Ответ

1 голос
/ 28 октября 2019

Вы пытаетесь использовать встроенную функциональность Django для входа? В этом случае ваша конечная точка - http://127.0.0.1:8000/accounts/login, и ваш шаблон должен быть найден в каталоге регистрации в каталоге шаблонов.

Mozilla довольно хорошо обрисовывает, как все это работает, в их учебнике по Django. Проверьте это здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...