2019.05.03 장고 Bookmark 만들기 프로젝트
개인 Bookmark웹 만들기
- 웹사이트를 통해 개인 북마크를 설정할 수 있다.
- 북마크에는 url 주소와 사이트명이 들어간다.
- 해당 사이트에 대한 설명과 작성일자가 자동으로 생성된다.
- 메인 페이지에서 해당 북마크에 대한 리스트를 보여준다.
- 메인페이지에서 북마크 추가하기 버튼으로 추가할 수 있다.
- 해당 북마크를 클릭하면 상세페이지로 이동한다.
- 상세페이지에서 수정 및 삭제를 할 수 있다.
- base.html과 연동하여 쉽게 구현할 수 있도록 한다.
이번 시간에 할 것
- 프로젝트 시작하기
- 앱 만들기
- models를 통해 DB 구축하기
- 만들어진 DB를 admin 사이트에 접속하여 확인하기
- DB 등록하기
1. 북마크 만들기
프로젝트 시작 준비하기
가상 환경 만들기
- pip3 install virtualenv
- virtualenv -python = python3.7 venv
- venv라는 가상환경 생성
가상 환경 실행하기
- source venv/bin/activate
- 해당 터미널에 venv ) 표시 확인
장고 설치하기
- pip install django==2.2
- 원하는 버전의 장고 설치
- 가상환경이므로 더 이상 pip3를 해줄 필요 없음
프로젝트 생성하기
- django-admin startproject config .
- config는 프로젝트명 뒤에 .은 해당 디렉토리에 생성
- config내에 setting 및 url.py 등 관련 내용 생성
데이터베이스 migrate해주기
- 생성된 프로젝트에 대한 데이터베이스 초기화
- python manage.py migrate
북마크 앱 만들기
앱 설치하기
- python manage.py startapp bookmark
- 프로젝트 및 앱 설치 이후 상태 확인
- settings.py에 installed app에 bookmark 추가
model 설계하기
- 해당 bookmark 폴더의 models.py 이동
- site_name/url/contents/created 구성
- str 구성을 통해 admin 화면에서 보이는 모습 구현
- site_name 및 url 보이도록 구현
- class Meta : ordering을 통해 정렬 순서 구현
- 생성일자 역순으로 정렬 순서 구현
- 모델 설계 이후에 데이터베이스에 migration 해주기
- python manage.py makemigrations bookmark : 변경 사항 추적 및 기록하기
- python manage.py migrate bookmark 0001 : 변경 사항 DB에 적용하기
- migrate뒤 bookmark 0001 은 굳이 안해줘도 되나 실무에서 여러 사람이 함께 프로젝트를 진행해야되는 상황이 외면 꼭 해줘야 한다.
model에 대한 추가적인 공부
- 모델의 형태 - class
- class Bookmark(models.Model)
- models.Model을 상속 받는 이유
- 상속 : 어떤 클래스가 부모 클래스를 상속 받는다.
- 부모클래스가 가지고 있는 메서드 및 속성 값을 사용하기 위해서
- models.Model이 가지고 있는 메서드나 속성값을 사용하기 위해서 사용
- models.Model : ORM 관련 기능들
- DB를 추상화해서 코드로 조작할 수 있게 하는 기능
- 데이터를 추가, 수정, 검색, 삭제
- class Bookmark(models.Model)
- 사용자에게 안 받지만 필요한 것
- 작성자 : 로그인한 유저정보를 찾아서 추가
- 장고에서는 기본적으로 id값을 생성하여 저장시켜준다.
- 작성일 : 서버 시간을 읽어서 timestamp값을 만들어 추가
- 자동 옵션 auto_now, auto_now_add를 하면 자동 서버시간을 저장해준다.
- 단 setting에서 TIME_ZONE = “Asia/Seoul” 로 해준다.
- 작성자 : 로그인한 유저정보를 찾아서 추가
admin에서 모델 확인하기
- admin.py로 이동
- from .models import Bookmark
- admin.site.register(Bookmark)

model 확인해보기
- superuser 생성 : admin 사이트 로그인을 위해
- python manage.py createsuperuser
- 아이디 및 비밀번호 등록
파이썬 서버 실행 시켜보기
- 서버 실행하기
- python manage.py runserver [포트번호]
- 실행 이후 나오는 url로 접속
url 뒤에 admin을 붙여서 해당 admin으로 접근 및 로그인
해당 bookmark를 통해 몇가지를 직접 add 해보기