Byeonguk Kim

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

Django 05. Bookmark프로젝트 시작하기(models)

03 May 2019 » Django

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

EF0BAE6D-9615-436F-A81A-00425884F267

  • 프로젝트 및 앱 설치 이후 상태 확인
  • settings.py에 installed app에 bookmark 추가

model 설계하기

  1. 해당 bookmark 폴더의 models.py 이동
    1. site_name/url/contents/created 구성
  2. str 구성을 통해 admin 화면에서 보이는 모습 구현
    1. site_name 및 url 보이도록 구현
  3. class Meta : ordering을 통해 정렬 순서 구현
    1. 생성일자 역순으로 정렬 순서 구현

052805CF-1848-4786-9582-B5D6ADE34ACD

  1. 모델 설계 이후에 데이터베이스에 migration 해주기
    1. python manage.py makemigrations bookmark : 변경 사항 추적 및 기록하기
    2. python manage.py migrate bookmark 0001 : 변경 사항 DB에 적용하기
      1. migrate뒤 bookmark 0001 은 굳이 안해줘도 되나 실무에서 여러 사람이 함께 프로젝트를 진행해야되는 상황이 외면 꼭 해줘야 한다.

model에 대한 추가적인 공부

  • 모델의 형태 - class
    • class Bookmark(models.Model)
      • models.Model을 상속 받는 이유
      • 상속 : 어떤 클래스가 부모 클래스를 상속 받는다.
      • 부모클래스가 가지고 있는 메서드 및 속성 값을 사용하기 위해서
      • models.Model이 가지고 있는 메서드나 속성값을 사용하기 위해서 사용
      • models.Model : ORM 관련 기능들
        • DB를 추상화해서 코드로 조작할 수 있게 하는 기능
        • 데이터를 추가, 수정, 검색, 삭제
  • 사용자에게 안 받지만 필요한 것
    • 작성자 : 로그인한 유저정보를 찾아서 추가
      • 장고에서는 기본적으로 id값을 생성하여 저장시켜준다.
    • 작성일 : 서버 시간을 읽어서 timestamp값을 만들어 추가
      • 자동 옵션 auto_now, auto_now_add를 하면 자동 서버시간을 저장해준다.
      • 단 setting에서 TIME_ZONE = “Asia/Seoul” 로 해준다.

admin에서 모델 확인하기

  • admin.py로 이동
  • from .models import Bookmark
  • admin.site.register(Bookmark)

393886A4-1AE2-4F51-A535-1D2EC41E8186

model 확인해보기

  1. superuser 생성 : admin 사이트 로그인을 위해
    1. python manage.py createsuperuser
    2. 아이디 및 비밀번호 등록

파이썬 서버 실행 시켜보기

  1. 서버 실행하기
    1. python manage.py runserver [포트번호]
    2. 실행 이후 나오는 url로 접속

F40C76E0-3161-4FFA-9DEE-00E0152EE7D1

  1. url 뒤에 admin을 붙여서 해당 admin으로 접근 및 로그인

  2. 해당 bookmark를 통해 몇가지를 직접 add 해보기

8817740F-675B-4301-8ADA-858DBCC72666

다음에서 직접 views.py를 작성하여 url에 연결하여 봅니다.