Byeonguk Kim

안녕하세요. 29살의 조금은 늦은 나이로 새롭게 개발자로 시작하는 신입 개발자입니다. 포트폴리오 [https://deaguowl.github.io]

Django 06. Bookmark views 및 url 구현하기

03 May 2019 » Django

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 구성하기

  1. 클래스형 뷰를 통한 구현 실행

스크린샷 2019-05-04 오후 2 28 17

  1. Listview, Createview, deleteview,detailview,updateview 임포트 해오기
  2. BookmarkList:
    1. 가장 메인에서 보여줄 로직
    2. 북마크 모델을 불러와서 데이터를 활용할 것이라고 기제
  3. BookmarkCreate:
    1. 북마크 모델을 활용하는데
    2. 생성할 때 채워야 할 필드 확인
    3. 이후 연결될 템플릿 이름은 bookmark_create 일 것이다.
    4. 성공하면 메인 페이지로 돌아가도록 연결(이후 url로 연결)
  4. BookmarkUpdate:
    1. Create와 마찬가지로 field가 꼭 필요하다
    2. 대부분 Create와 동일
  5. BookmarkDelete와 BookmarkDetail
    1. 삭제와 상세페이지는 특별한 로직이 필요하지 않음
    2. 템플릿과 연결을 잘 시킬 수 있도록 신경

URL 연결하기

2차 URL 연결하기

  1. bookmark의 urls.py 생성
  2. URL 작성하기

F56E6C48-629C-4DD0-86D7-E90FBBFAAB79

  1. app_name 설정을 통해 namespace(이름공간)확보
    1. 다른 앱들과 url pattern 이름이 겹치는 것을 방지하기 위해 사용한다.
  2. path(url pattern, view, url pattern name)
    • 함수형 뷰는 이름만 적으면 되고 클래스형 뷰는 이름.as_view()
    • name은 나중에 불러쓰기 위해 지정한다.
  3. url pattern
    1. <int:pk>
      1. 해당 작성에 대한 번호로 이동해야지 상세페이지 및 그 글에 대한 삭제, 수정을 할 수 있다.
  4. views 경로 지정
    1. 해당 url이 들어오면 views의 해당 view의 로직을 따라서 처리한다.
  5. name
    1. 네임 설정을 통해 이후 클릭하면 해당 url로 이동하도록 설정한다.

1차 URL 연결하기

  1. config의 url.py에 작성
  2. 2차 URL을 설정한 이후에 가장 기본이 되는 URL과 연결시켜준다.

BCE395FA-A008-4EBA-BF47-EEFF09F362F6

  1. 기본적으로 admin 주소는 설정되어 있다.
  2. include를 통해서 해당 주소로 연결시켜준다.
    1. 가장 기본 주소가 들어오면 bookmark의 url로 연결시켜줘라.

이까지 하면 views 로직을 만들고 URL까지 연결시켜주었다. 다음 시간에는 직접 화면에 구성해줄 Template를 구성한다.