Django 기본 URL 파일의 앱에서 URL을 가져 오는 방법
다음과 같은 프로젝트 구조가 있습니다.

이것은 내 INSTALLED_APPS 배열입니다.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'climemanage.clients'
]
그런 다음 아래와 같이 clients.urls
상위 urls
파일에 파일 을 추가하려고했습니다 .
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('clients/', include('clients.urls'))
]
하지만이 오류가 발생합니다. ModuleNotFoundError: No module named 'clients'
다음 경로를 사용하여이 문제를 해결할 수 있습니다. include('climemanage.clients.urls')
그러나 나는 climemanage
길에서 건너 뛰고 싶다 .
나는 다른 방법을 시도했습니다.
import clients
import climemanage.clients
from climemanage import clients
그러나 아무것도 작동하지 않습니다.
답변
프로젝트 구조가 잘못되었습니다. 그것도 보인다 startproject
일부 또는 startapp
일부의 힘 사라 잘못. 이 시점까지 어떻게 지 냈는지 목록을 작성할 수 있다면 가장 좋을 것입니다. 내 답변 끝에 넣은 구조를 참조하십시오.
귀하의 경우 귀하의 메인 settings.py
은 clients
. 이것은 clients
의 결과 임을 의미합니다 startproject
. 현재는 없지만 폴더 아래에 표시 app
되어야하는 파일이 많이 있습니다 .app
migrations
그것의 Beause, 당신은 clients.urls
main 에서 아무것도 추가 할 수 없습니다 urls.py
. clients
귀하의 메인이 urls.py
위치한 곳 이기 때문 입니다.
나는 내가 일반적으로하는 것을 여기에 넣습니다 (이 Mac 버전, Windows를 사용하는 경우 django 자습서를 확인해야 함)
$ mkdir clienmanage $ cd clienmanage
$ python3 -m venv myvenv # set up virtual environment $ source myvenv/bin/activate # go into virtual envionment
After this step you can install django
그런 다음 startproject
명령 을 실행할 때 다음 과 같이 실행하십시오.
django-admin startproject project .
.
끝에 유의하십시오 .
그 후에는 다음과 같은 구조가 있어야합니다.
clienmanage
|--- manage.py
|--- project
| |--- __init__.py
| |--- settings.py
| |--- urls.py
| |--- wsgi.py
|--- virtual
|
|___ requirements.txt
그러면 다음을 수행합니다.
$ python manage.py startapp clients
clienmanage
|
|---clients # this is the app
| |---migrations
| |---models.py
| |---views.py
| |---apps.py
|--- manage.py
|--- project
| |--- __init__.py
| |--- settings.py
| |--- urls.py
| |--- wsgi.py
|--- virtual # a folder
|
|___ requirements.txt
이 단계 후에 django는 자동으로 app
레벨 urls.py
과 forms.py
. 당신은 내부에 이러한 파일을 생성해야합니다 app
(내 예를 들어, 경우 폴더 clients
)
**** 앱을 다른 디렉토리에 넣으려면 목적지를 지정할 수 있습니다.
$ python manage.py startapp <app_label> [destination]
위의 경우 app
내부 를 갖고 싶다면project
$ python manage.py startapp clients project/clients
이 경로를했다 경우 추가해야합니다 project.clients
보다는 clients
당신에서 INSTALLED_APPS
.
기본 urls.py 파일에서 다음 코드 스 니펫을 추가 할 수 있습니다.
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('something/', include('clients.urls')),
]
settings.py 파일에서
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'webapi', # like in my case my appname was webapi
'nameofyourapp', #pay attention here
]
client.urls.py 페이지를 보여주세요.