Django | WeStagram 1,2. 초기 세팅 및 모델링

김민호·2021년 9월 17일
0

DJANGO

목록 보기
2/18
post-thumbnail

1.가상환경

  • 생성 : $ conda create -n westagram python=3.8
    가상 환경은 프로젝트마다 하나씩 생성하는 것 추천
  • 목록 확인 : $ conda env list
  • 활성화(이동) : $ conda activate westagram

2. Database

  • DB 생성 : mysql> CREATE DATABASE westagram(생성할 DB명) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

3. 프로젝트 초기 설정

project 초기 세팅(clone하여 진행)

1) 프로젝트 레포 클론

# 프로젝트를 시작할 디렉토리로 이동해주세요.

# 현재 위치한 디렉토리를 git repository 로 만들기 (미리 directory 생성한 경우)
# ex) ~/Desktop/wecode/westagram

$ git clone "위에서 복사한 github 주소" .    # 뒤에 점 '.' 꼭 찍어주세요.

# 현재 위치한 디렉토리에 git repository 를 생성하기 (다른 파일이 있는 데스크탑과 위치와 같은 경우)
# ex) ~/Desktop

$ git clone "위에서 복사한 github 주소"     # 점을 찍지 않습니다. 

2) 프로젝트 파이썬 패키지 설치

# (중요) 꼭 가상환경 확인해주세요!
$ pip install django

# 이후에 MySQL server에 접속하기 위한 package (중요) mysql 설치되어 있는지 먼저 확인해주세요
$ pip install mysqlclient

$ pip install django-cors-headers

3) 장고 프로젝트 설정

  • 브랜치 생성 : git branch 브랜치이름
  • 브랜치 이동 : git checkout 브랜치이름
  • 생성한 브랜치로 이동해서 django project 실행할 디렉토리 생성 후 이동
  • django project 생성 : $ django-admin startproject westagram
  • 이동 : $ cd westagram 이동하면 이렇게 파일 구성 ↓
  • settings.py 설정
    • IP 허용
    • 주석처리(admin, csrf, auth)
    • 프로젝트파일/urls.py 수정
    • my_settings.py 생성
    • settings.py 와 my_settings.py 연동
    • corsheaders (INSTALLED_APPS, MIDDLEWARE, 허용할 값 정의)
  • requirements.txt 생성
  • .gitignore 생성
  • 프로젝트 서버 실행하여 정상 동작 확인

4) Git add & commit

모든 작업은 절대 main 브랜치에서 하면 안 됨!!!
main을 기준으로 작업할 브랜치를 생성하고 그 브랜치를 푸쉬해서 수정을 받고 최종적으로 머지가 되면 그 리모트의 최신화된 main브랜치를 내 로컬의 main브랜치로 pull하는 식으로 순환!

  • git checkout 작업한 브랜치 명
  • git add .
  • git commit -m "커밋 메세지"
    (git commit으로 커밋 메세지 작성에 신경을 쓰자!)
  • git push origin 작업한 브랜치 명
    여기서 origin은 이미 클론을 받고 시작한 것이기 때문에 자동으로 repository 주소 설정이 되어 있는 상황.
  • 이제 github repository에 푸쉬한 내역 뜸 compare & pull request
    한 번 푸쉬해놓으면 머지해주기 전에 혹시 수정할 일이 생겨도 그냥 수정하고 다시 푸쉬하면 자동으로 업데이트가 됨!

4. 모델링

  • git checkout main : 머지가 됐으면 main 브랜치로 가서 pull하고 여기서 다시 작업할 브랜치 생성 git branch 다음 작업할 브랜치 명 그리고 이동

  • python manage.py startapp users : manage.py 있는 명령어들은 항상 이 파일 위치한 곳에서 실행

  • users.models.py

from django.db import models

class User(models.Model):
    name         = models.CharField(max_length=45)
    email        = models.CharField(max_length=45, unique=True)
    password     = models.CharField(max_length=200)
    phone_number = models.CharField(max_length=100)
    other_info   = models.CharField(max_length=300, null=True)
    created_at   = models.DateTimeField(auto_now_add=True)
    updated_at   = models.DateTimeField(auto_now=True)

    class Meta:
        db_table    = "users"

멘토님 리뷰

  • email의 속성값에는 unique=True를 주어서 중복이 되지 않게 한다
  • passwordsms 추후에 암호화해서 저장해야 하기 때문에 넉넉하게 max_length=200으로 수정한다
  • 데이터 이력 관리를 위해서 created_at, updated_at column을 추가한다
  • 변수명 이후의 = 작성 시 스페이스 공백은 가장 긴 변수명을 기준으로 한 칸이면 충분하다
created_at = models.DateTimeField(auto_now_add=True)

updated_at = models.DateTimeField(auto_now=True)

profile
개발자로서의 삶은 https://velog.io/@maxminos 에서 기록하고 있습니다 😀

0개의 댓글