(Django CBV) 구성
Django CBV 프로젝트 1. 기본 프로젝트 구조
프로젝트 구성
# Project
minitutorial/ # 프로젝트의 루트 디렉토리입니다. 디렉토리이름은 변경하셔도 됩니다.
├── manage.py # CLI에서 장고 프로젝트의 다양한 기능들을 사용할 수 있게 해주는 유틸리티입니다.
└── minitutorial/ # 실제 프로젝트 디렉토리입니다. 프로젝트의 설정을 할 수 있으며, 파이썬 패키지로 사용됩니다.
├── __init__.py # 파이썬 패키지에 필수로 들어있는 초기화 파일입니다. 프로젝트를 패키지로 불러올 때 가장 먼저 실행되는 스크립트입니다.
├── settings.py # 프로젝트 설정파일입니다.
├── urls.py # 웹 url들을 view와 매칭시켜주는 파일입니다.
└── wsgi.py # WSGI 호환 웹 서버로 서비스할 때 실행되는 시작점입니다.
-------------------------------------------------
# APP
bbs/
├── __init__.py # 앱 패키지 초기화 스크립트입니다.
├── admin.py # 장고 어드민 설정파일입니다. 어드민에 등록된 모델은 장고에서 자동 생성하는 어드민 페이지에서 관리할 수 있습니다.
├── apps.py # 앱 설정 파일입니다.
└── migrations/ # 데이터베이스 마이그레이션 디렉토리. 장고 ORM은 모델 스키마의 변화가 생길 때마다 migration 파일을 생성하고 이것을 통해 스키마를 업데이트 합니다. migration 파일을 통해 협업자들과 함께 데이터베이스의 스키마를 동기화할 수 있습니다.
├── __init__.py # 마이그레이션 패키지 초기화 스크립트입니다.
├── models.py # 앱 모델 파일입니다. 게시판의 모든 데이터를 저장할 데이터베이스를 장고 ORM을 통해 모델화합니다.
├── tests.py # 앱 내의 기능들을 테스트하는 기능을 구현하는 파일입니다.
├── views.py # 앱의 화면(template)과 데이터(model) 사이에서 사용자의 요청을 처리하여 모델에 저장하고, 모델에 저장된 데이터를 화면에 전달하는 역할을 합니다.
└── templates/
├── base.html # 기본 틀이 되는 html
├── article_list.html # 게시글 목록이 보이는 html
├── article_detail.html # 특정 게시글이 보이는 html
└── article_update.html # 새로운 게시글이나 특정 글을 update 하는 html
프로젝트 생성
1 | $ django-admin startproject minitutorial |
모델 설계 M (Model)
게시글(Article) - 제목(title)
, 내용(content)
, 작성자(author)
, 작성일(created_at)
1 | # bbs.models.py |
뷰 설계 V (View)
기능 - 글목록(list)
, 글상세보기(detail)
, 글수정(update)
, 글추가(new)
1 | # bbs/views.py - CBV(Class Based View) |
API 명세
URL | METHOD | Description | Params | Return |
---|---|---|---|---|
/article/ | GET | 글 목록 | X | [..{ Article }] |
/article/create/ | POST | 새로운 글 작성 | (Title & Content & Author) | |
article/article_id/ | GET | 글 상세보기 | (Article_id) | { Article } |
article/article_id/update/ | POST | 글 수정 | (Article_id) |
cf) args & kwargs?
설명 해보자!
템플릿 설계 T (Templates)
├── base.html # 기본 틀이 되는 html
├── article_list.html # 게시글 목록이 보이는 html
├── article_detail.html # 특정 게시글이 보이는 html
└── article_update.html # 새로운 게시글이나 특정 글을 update 하는 html
Comment