장고 - 튜터리얼 학습

1. 장고 프로젝트 진행할 디렉토리 생성

  • 장고 프로젝트를 진행할 디렉토리를 생성해준다. (원하는 경로에 디렉토리 생성)
    1
    $ mkdir django_project                         # django_project 디렉토리 생성

2. 가상환경 설치 및 활성화

  • 가상환경이 설치되어 있지 않다면 pip install을 사용하자.
  • 혹시 모르니, pip version 확인하여 최신버전으로 업그레이드를 해보자. (bookmark_project 디렉토리 위치에서 실행)
    1
    2
    3
    4
    5
    $ pip --version                               # pip version 확인
    $ pip install --upgrade pip # pip 업그레이드
    $ pip install virtualenv # virtualenv 설치
    $ virtualenv --python=python3.6 venv # virtualenv를 'venv'라는 이름으로 설치하고, python3.6으로 python 버젼 설정
    $ source venv/bin/activate # virtualenv(venv) 활성화



3. django 설치 및 확인

  • 먼저 장고를 설치하기 위해 pip install을 사용하자. (bookmark_project 디렉토리 위치에서 실행)
    1
    2
    $ pip install django==2.1                     # django 2.1 version 설치
    $ python -m django --version # django version 확인

4. django project 생성

  • django를 활용하여 수행할 프로젝트를 생성한다. (bookmark_project 디렉토리 위치에서 실행)
    1
    $ django-admin startproject config .          # 'config' 프로젝트 생성

5. django 서버 동작하는지 확인

  • 서버가 잘 동작하는지 확인해준다. (bookmark_project 디렉토리 위치에서 실행)
    1
    $ python manage.py runserver (port번호)       # port default값 : 8000

6. django project의 app 생성 및 관련 코드 작성

  • django 프로젝트(config)에서 기능을 담은 앱(photo) 생성 (bookmark_project 디렉토리 위치에서 실행)

    1
    $ python manage.py startapp photo            # photo라는 app을 생성한다.
  • polls > models.py : 데이터베이스에 저장될 field 정의 (데이터 유형에 적절한 field 정의)

  • polls > views.py : 실제 화면에 구현되는 코드 작성 (클래스형 뷰, 함수형 뷰 등)
  • polls > urls.py : 기능별 사이트 url 정의 (path로 경로 설정)
  • polls > templates > photo > (CRUDL).html : 화면에서 보여질 내용들을 views.py가 template을 이용하여 html 코드로 구현

7. app을 project에 포함

  • 앱 관련 코드 작성 이후, 해당 앱을 프로젝트에 포함시켜준다.
    config > settings.py > ‘INSTALLED_APPS’ 설정에 ‘photo’ 추가

8. 모델 변경사항 migration으로 저장

  • 모델을 변경시킨 사실과 이 변경사항을 migration으로 저장시키고 싶다는 것을 django에게 알림
    1
    & python manage.py makemigrations           # bookmark_project 디렉토리 위치에서 실행

9. 데이터베이스에 모델과 관련된 테이블 생성

  • 이 과정을 통해 모델에서의 변경 사항들과 데이터베이스의 스키마 동기화가 이루어진다.
    1
    $ python manage.py migrate                  # bookmark_project 디렉토리 위치에서 실행

10. superuser 생성

  • 관리자(개발자) 페이지의 superuser를 생성한다. (bookmark_project 디렉토리 위치에서 실행)
    1
    2
    python manage.py createsuperuser            # 여기에선 Username = admin 으로 설정
    python manage.py changepassword admin # superuser 비밀번호 변경