장고

장고 앱(App) 만들기

앱 생성하기

장고에서는 프로젝트 내에 여러 개의 앱을 만들어 각기 다른 기능을 관리할 수 있습니다. 앱을 만들려면 python manage.py startapp 앱명 명령어를 사용합니다. 예를 들어, blog라는 앱을 만들고 싶다면 python manage.py startapp blog를 입력합니다. 이 명령어로 생성된 앱 폴더에는 기본적인 디렉토리 구조와 템플릿, 모델, 뷰 등을 정의할 수 있는 파일들이 포함됩니다.

앱 등록하기

생성한 앱은 프로젝트에서 사용하기 위해 설정 파일인 settings.py에 등록해야 합니다. mysite/settings.py 파일을 열고 INSTALLED_APPS 항목에 생성한 앱을 추가합니다. 예를 들어, blog 앱을 등록하려면 'blog'를 리스트에 추가합니다. 이를 통해 장고는 해당 앱을 프로젝트의 일부로 인식하고 기능을 활성화합니다.

모델(Model) 정의하기

앱에서 데이터를 관리하려면 모델을 정의해야 합니다. 모델은 데이터베이스 테이블과 1:1로 매핑되는 클래스입니다. 앱명/models.py 파일에서 클래스를 생성하고, 각 클래스에 필요한 필드를 정의합니다. 예를 들어, Post 모델을 만들고 title, content 필드를 정의할 수 있습니다. 모델을 작성한 후에는 python manage.py makemigrations 및 python manage.py migrate 명령어로 데이터베이스에 테이블을 반영할 수 있습니다.

뷰(View) 설정하기

뷰는 사용자의 요청을 처리하고 적절한 응답을 반환하는 역할을 합니다. 앱명/views.py 파일에서 뷰를 정의할 수 있습니다. 예를 들어, 특정 포스트를 보여주는 뷰를 만들려면 def post_detail(request, post_id):와 같은 형식으로 작성합니다. 뷰에서 데이터를 처리한 후, 템플릿을 렌더링하거나 JSON 응답을 반환할 수 있습니다. 뷰를 작성한 후에는 urls.py에 URL 패턴을 연결하여 뷰를 호출할 수 있도록 설정합니다.

템플릿(Template) 만들기

장고는 템플릿 시스템을 사용해 HTML 페이지를 동적으로 생성할 수 있습니다. 앱 폴더 내 templates 폴더에 HTML 파일을 만들고, 뷰에서 이 파일을 렌더링하도록 설정합니다. 예를 들어, post_detail.html이라는 템플릿을 만들고, 뷰에서 render(request, 'post_detail.html', {'post': post})와 같이 데이터를 전달하여 동적 페이지를 생성할 수 있습니다. 템플릿은 HTML 코드 내에서 {% %}, {{ }} 구문을 사용해 변수를 출력하거나 로직을 추가할 수 있습니다.