Django에서 앱은 재사용 가능한 기능의 작은 모듈을 뜻한다. 예를 들어 인스타그램이라는 하나의 큰 프로젝트가 있다면 그 안에 있는 탐색 기능, 다이렉트 메시지 기능 등등이 앱이 되는 것이다. 이러한 각 앱은 모델, 뷰, 템플릿 및 URL 패턴을 포함하여 독립적으로 작동할 수 있다. 이렇게 하면 앱을 개발하고 유지 관리하는게 쉬우며, 여러 프로젝트에서 재사용할 수 있게된다.
Django APP 생성하기
기존에 만들어두었던 mysite 프로젝트 폴더 내부로 들어간뒤, 의견조사용 앱 polls를 생성하였다.
$ python manage.py startapp polls
mysite만 생성되어 있었을때는 http://127.0.0.1:8000/ 에 접속하면 django 초기 화면이 떴었다. 이번에 만든 polls 앱으로 넘어간 화면 즉, http://127.0.0.1:8000/polls/을 입력해보면 어떻게될까?? 당연히 에러화며이 뜬다. 왜? url패턴 설정을 전혀 하지 않았으니까.
어떻게 설정을 진행해야되는지 한번 알아보자
urls.py 설정하기
Django에서 URL 패턴은 사용자가 웹 애플리케이션에서 요청한 URL과 해당하는 뷰 함수 또는 클래스를 연결하는 데 사용된다. 새로운 app을 정상적으로 연결하기 위해서는 총 두 군데의 urls.py를 수정해야한다. 우선 프로젝트 자체(mysite)의 url패턴부터 고쳐보자
mysite/urls.py 수정
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path("admin/", admin.site.urls),
path("polls/", include('polls.urls')) # 코드 추가
]
django 프로젝트를 생성하면 내부에 urls.py가 자동으로 생성이 되어 있을 것이다. 해당 파일의 urlpatterns 파트에 새로이 만든 앱에 대한 경로를 지정해주면 된다. 해당 코드는 url뒤에 'polls'를 만나면 polls.urls로 넘겨서 처리하라는 뜻이다.
polls/urls.py 수정
프로젝트인 mysite 폴더와 달리 App인 polls폴더에는 urls.py가 자동으로 생성되지 않는다. 그래서 우리가 수동으로 생성을 해줘야한다. polls 폴더 내부에 urls.py를 생성 후 아래 코드를 입력해주면 된다.
from django.urls import path
from . import views
urlpatterns = [
path('',views.index, name='index')
]
mysite내부의 urls.py에서 polls.urls로 넘긴 명령이 해당 파일에서 실행이 되게 되는 것이다. 이 코드는 빈칸을 만나게 되면 즉, http://127.0.0.1:8000/polls/를 만나게 되면 views.index를 실행하라고 한다. 물론 views. index는 우리가 이제 만들어야 한다.
polls/views.py 수정
views 파일은 말그대로 url 연결시 띄울 화면을 구성해주는 파일이다. 일단은 간단하게 hello world를 출력해보자
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world.")
이렇게 수정을 하면 polls URL 요청이 들어왔을때 Hello world라는 문자열을 포함한 HttpResponse 객체를 반환하게 된다.
'Dev Tool > Django' 카테고리의 다른 글
[Django] Serilalizer 알아보기 (1) | 2024.04.10 |
---|---|
[Django] 뷰(Views)와 템플릿(Templates) (0) | 2024.04.10 |
[Django] Shell 사용하기 (0) | 2024.04.09 |
[Django] model 만들고 활용하기 (0) | 2024.04.08 |
[Django] 프로젝트 생성하고 서버 실행하기 (0) | 2024.04.08 |