Как мне импортировать views.py в файл URL-адресов моего проекта

#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».