#python #django
#питон #джанго
Вопрос:
Я работаю с Django и пытаюсь создать систему входа в систему
Приложение должно обеспечивать простую «систему входа» -просмотр, но my_app/urls.py не удается импортировать методы из my_app/views.py.
Мое имя приложения-аутентификация
Вот my-project/urls.py
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('authentication.urls')), ]
Вот my_app/urls.py.
from django.contrib import admin from django.urls import path, include from authentication import views urlpatterns = [ path('', views.home, name="home"), path("signup", views.signup, name="signup"), path("signin", views.signup, name="signin"), path("signout", views.signup, name="signout"), ]
Вот my-app/views.py
from django.shortcuts import render from django.http import HttpResponse def home(request): return render(request, "authentication/index.html")
Я также добавил это в my-project/settings.py
'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [BASE_DIR /"templates"], 'APP_DIRS': True,
И я получаю следующую ошибку
TemplateDoesNotExist at / authentication/index.html Request Method: GET Request URL: http://127.0.0.1:8000/ Django Version: 3.2.9 Exception Type: TemplateDoesNotExist Exception Value: authentication/index.html Exception Location: C:UsersjulieLogin Systemvenvlibsite-packagesdjangotemplateloader.py, line 19, in get_template Python Executable: C:UsersjulieLogin SystemvenvScriptspython.exe Python Version: 3.9.5 Python Path: ['C:\Users\julie\Login System', 'c:\python39\python39.zip', 'c:\python39\DLLs', 'c:\python39\lib', 'c:\python39', 'C:\Users\julie\Login System\venv', 'C:\Users\julie\Login System\venv\lib\site-packages']
Ответ №1:
Проблема заключается в settings.py попробуй.
import os 'DIRS': [os.path.join(BASE_DIR, 'templates')]
Ответ №2:
01) my-project/urls.py
urlpatterns = [ path('', include('my-app.urls')), # ..... ]
02) my-app/views.py
def home(request): return render(request, "authentication/index.html")
03) my-app/urls.py
urlpatterns = [ path('', views.home, name="home"), # ..... ]
(окончательное) мое приложение (структура папок и файлов):
my-app: |-- templates |-- authentication |-- index.html |-- urls.py |-- views.py |...
nb: подумайте просто
Ответ №3:
Ваши взгляды находятся в views.py в модуле «my_apps» я прав, предполагая это..? Если это так, вы должны импортировать представления из этого модуля, а не из модуля «аутентификация».
В вашем my_app/urls.py, попробуйте изменить строку,
from authentication import views
Для
from . import views
и посмотрим, сработает ли это. Точка представляет каталог, содержащий urls.py, то есть «my_apps».