728x90
반응형
SMALL
PyCharm을 통하여 Django App 및 Project를 생성하고,
App에 있는 views.py에 있는 함수를 실행했을 때, Error가 나는 경우 해결책

 

■ App을 만들어 사용하는 간단한 방법을 알아보자.

1. 아래 이미지는 Django Project와 App을 만들어놓은 상태이다.

Django Project, App이 추가된 화면

2. django_app_1/views.py에 새로운 url을 호출할 때 나올 함수를 선언하였다.

    django_project_1/django_project_1/urls.py에 django_app_1의 views를 import 한 이후에 path와 url을 추가하고, views.py에서 만든 함수를 연결하고 실행한다.

Path 추가하는 화면

3. 실행결과 Error : ModuleNotFoundError: No module named 'django_project_1.django_app_1'

    원인은 django_project_1안에 django_project_1라는 같은 이름의 Project가 있기 때문이다.

    이렇게 되면 경로를 찾을 수 없게 되는데, 에러 수정을 위해서는 같은 이름 중 하나는 수정해야 하므로, Project이름을 django_pro_1(원하는 이름)로 수정한다.

4. 수정방법은 이름을 바꾸고자 하는 Project에서 우클릭, Refactor, Rename을 클릭하면 Rename창이 뜬다.

    원하는 이름으로 수정하고 Refactor를 누른다. 그러면 하단에 수정될 파일 개수가 나오고, 확인 후 Do Refactor를 누르면 참조하고 있던 것들이 모두 수정된다.

Refactor하는 화면

5. 다시 실행하면 아래와 같이 실행된다.

App이 실행된 화면

6. 실행이 안될 경우, django_project_1(수정 후 명칭 : django_pro_1)/setting.py과 manage.py의 내용을 수정한다.

  - setting.py : ROOT_URLCONF = 'django_pro_1.urls' , WSGI_APPLICATION = 'django_pro_1.wsgi.application'

  - manage.py : django_pro_1.settings'

  위의 2개만 수정해도 당장은 실행되지만, asgi.py, wsgi.py도 수정을 해야 한다.

 

(참고) HttpResponse

- 간단하게 설명하자면 urls.py에서 정리된 Url을 요청(Request)하면 응답(Response)이 오는 구조인데, Request는 함수에 첫 번째 인자로 전달하고, Response는 HttpResponse 또는 JsonResponse로 전달받는다. 그렇기 때문에 별도로 Html파일을 만들지 않고도 페이지를 확인할 수 있다.

728x90
반응형
LIST

+ Recent posts