첫번째 app
- 프로젝트 내부에 app을 만들고 실행되는지 확인한다.
app 생성
- app을 생성하는 위치는
manage.py
가 있는 위치이다.
- app 생성 명령어
$ python manange.py startapp [app_name]
앱이 제대로 생성됐다면 아래와 같이 앱을 위한 패키지가 자동으로 생성된다.
app 패키지 구성
models.py
: entity를 위한 파일
views.py
: controller 역할을 하는 파일
migrations
: DB를 migration 한 결과를 저장하는 폴더
templates
: view 파일을 저장하기 위한 폴더 (생성 필요)
urls.py
: request가 들어오는 url과 view를 연결하는 파일 (생성 필요)
settings.py
: 환경 설정과 관련된 파일 (주로 앱을 등록할때 사용한다)
- app을 생성하는 위치는
app 등록
- 만든 app이 프로젝트에서 돌아가도록 추가해야한다.
- 프로젝트 폴더에
settings.py
에서INSTALLED_APPS
에 app 이름을 추가한다.‼️리스트형태로 저장되고 있으므로 쉼표 (
,
)를 반드시 붙이고 추가한다‼️INSTALLED_APPS = [ 'django.contrib.admin', ... 'django.contrib.staticfiles', # 쉼표 반드시 확인! "hello_app" # 새로 만든 앱 추가 ]
index view 작성
views.py
에 index view를 controller할 함수를 정의한다.
urls.py
에 url과 view를 연결할 패턴을 정의한다.Controller 작성
- 간단히 메세지를 전달하는 정도이므로
HttpResponse
를 활용해 page를 생성하도록 한다.from django.http import HttpResponse def index(request): return HttpResponse("Hello, world. You're at the polls index.")
Url 패턴 등록
- controller를 작성하고나면 url에 연결해서 request가 들어왔을때 controller가 view를 반환할 수 있게 만들어줘야 한다.
- app폴더에
urls.py
를 생성하고 어떤 url에 controller와 view를 연결할 것인지 등록한다.polls/urls.py¶ from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ]
프로젝트에 APP url 등록
- 서버가 실제로 돌아가는 환경은 프로젝트 단에서 일어난다.
- app에 등록한 url을 프로젝트 단에서 받아올 수 있도록 프로젝트 단에도 추가해줘야한다.
from django.contrib import admin from django.urls import include, path urlpatterns = [ path('hello_app/', include('hello_app.urls')), path('admin/', admin.site.urls), ]
- 간단히 메세지를 전달하는 정도이므로
실행
- 이제 다시 서버를 실행시켜 동작하는지 확인한다.
- index의 url은 공백이지만, 프로젝트에서 참조하는 app의 url은 hello_app이다.
- 정리하면 아래와 같은 순서로 url이 결정된다.
- 프로젝트에서 앱 참조 : 'hello_app/'
- 앱에서 index 참조 : ''
⇒ 최종 url :
localhost:8000/hello_app
- 서버를 실행하고 해당 url로 접속하면 아래와 같이 접속된 모습을 볼 수 있다.
Uploaded by Notion2Tistory v1.1.0