2019.05.03 장고를 활용하여 북마크의 view 및 url 구현하기
개인 Bookmark웹 만들기
- 웹사이트를 통해 개인 북마크를 설정할 수 있다.
- 북마크에는 url 주소와 사이트명이 들어간다.
- 해당 사이트에 대한 설명과 작성일자가 자동으로 생성된다.
- 메인 페이지에서 해당 북마크에 대한 리스트를 보여준다.
- 메인페이지에서 북마크 추가하기 버튼으로 추가할 수 있다.
- 해당 북마크를 클릭하면 상세페이지로 이동한다.
- 상세페이지에서 수정 및 삭제를 할 수 있다.
- base.html과 연동하여 쉽게 구현할 수 있도록 한다.
이번 시간에 할 것
- Views.py 만들기
- 함수형 뷰 및 클래스형 뷰 공부하기
- 클래스형 뷰를 통해 구현하기
- 2차 url 만들기
- 1차 url에 연결시켜주기
1. 북마크 만들기
1. VIews.py 만들기
views에 대해 먼저 알고 가기
- 클래스형 뷰와 함수형 뷰는 서로 상호 기능 제약이 거의 없다.
- 클래스형 뷰로 만드는 것은 모두 함수형 뷰로 가능하고 서로 바꿔서도 가능하다.
- 하지만 구현 방법이 조금씩 달라질 수 있다.
- 가장 기본적인 것들을 많이 쓰면 클래스형 뷰가 좋고
- 기본적으로 처리해야되는 것조차 커스터마이징이 필요하면 함수형 뷰가 좋다.
- 클래스형 뷰로 만드는 것은 모두 함수형 뷰로 가능하고 서로 바꿔서도 가능하다.
- 함수형 뷰
- def 뷰이름(request[, 추가인수]) : 처리할 내용
- CRUDL에 특별한 처리를 추가해야 되는 경우
- 함수형 뷰는 자유도가 클래스형 뷰에 비해 높다.
- 처리할 코드를 직접 다 개발자가 작성
- 클래스형 뷰
- class 뷰이름(제네릭뷰 상속): 처리할 내용
- CRUDL에 관련된 기능은 자주 사용하기 때문에 장고에서 제네릭 형태로 미리 만들어 놓음
- 클래스형 뷰는 생산형이 함수형 뷰에 비해 높다.
- 제네릭 기능 외우 추가적인 기능을 개발자가 작성
- 쭉 적는 것이 아닌 메서드 방식 - 커스터마이징에 관련된 메서드를 찾아야 한다.
- 어떤 기능에 대한 커스터마이징을 하느냐에 따라서 찾아봐야한다.(쿼리셋)
- 뷰의 기본 : CRUDL!
- Create : 생성과 관련된 로직 구성
- Read : 한 개의 파일에 대한 상세 페이지 구성 (detail로 활용)
- Update : 수정하기와 관련된 로직 구성
- Delete : 삭제하기와 관련된 로직 구성
- List : 메인 화면과 관련된 로직 구성
- 뷰를 만든 다음에는 url을 연결해줘야한다.
views.py 구성하기
- 클래스형 뷰를 통한 구현 실행
- Listview, Createview, deleteview,detailview,updateview 임포트 해오기
- BookmarkList:
- 가장 메인에서 보여줄 로직
- 북마크 모델을 불러와서 데이터를 활용할 것이라고 기제
- BookmarkCreate:
- 북마크 모델을 활용하는데
- 생성할 때 채워야 할 필드 확인
- 이후 연결될 템플릿 이름은 bookmark_create 일 것이다.
- 성공하면 메인 페이지로 돌아가도록 연결(이후 url로 연결)
- BookmarkUpdate:
- Create와 마찬가지로 field가 꼭 필요하다
- 대부분 Create와 동일
- BookmarkDelete와 BookmarkDetail
- 삭제와 상세페이지는 특별한 로직이 필요하지 않음
- 템플릿과 연결을 잘 시킬 수 있도록 신경
URL 연결하기
2차 URL 연결하기
- bookmark의 urls.py 생성
- URL 작성하기
- app_name 설정을 통해 namespace(이름공간)확보
- 다른 앱들과 url pattern 이름이 겹치는 것을 방지하기 위해 사용한다.
- path(url pattern, view, url pattern name)
- 함수형 뷰는 이름만 적으면 되고 클래스형 뷰는 이름.as_view()
- name은 나중에 불러쓰기 위해 지정한다.
- url pattern
- <int:pk>
- 해당 작성에 대한 번호로 이동해야지 상세페이지 및 그 글에 대한 삭제, 수정을 할 수 있다.
- <int:pk>
- views 경로 지정
- 해당 url이 들어오면 views의 해당 view의 로직을 따라서 처리한다.
- name
- 네임 설정을 통해 이후 클릭하면 해당 url로 이동하도록 설정한다.
1차 URL 연결하기
- config의 url.py에 작성
- 2차 URL을 설정한 이후에 가장 기본이 되는 URL과 연결시켜준다.
- 기본적으로 admin 주소는 설정되어 있다.
- include를 통해서 해당 주소로 연결시켜준다.
- 가장 기본 주소가 들어오면 bookmark의 url로 연결시켜줘라.