Assignment #1 | Westagram [Mission 1] Django Initial Setting

Jayson Hwang·2022년 5월 14일
0

Westagram Project

목록 보기
1/11
post-thumbnail

1. Virtual Environment(가상 환경)

# 가상환경 생성:
	conda create -n westagram python=3.9
	# 프로젝트 별 환경을 맞춰주기 위한 가상환경 생성
    # 프로젝트 마다 생성하는 것을 추천

# 가상환경 목록 출력:
	conda env list
    
# 가상환경 활성화:
	conda activate westagram

2.. 프로젝트 초기 설정

2-1.. Database 생성(mysql)

# westagram을 위한 데이터베이스 생성::

mysql -u root -p 
# mysql 접속
    
mysql> CREATE DATABASE westagram CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
# DB 생성 커맨드

2-2.. Project initial setting

(1) Project Repository Clone

# 프로젝트를 시작할 디렉토리로 이동

# 현재 위치한 디렉토리를 git repository 로 만들기 (미리 directory 생성한 경우)
# ex) ~/Desktop/wecode/westagram
    
git clone "위에서 복사한 github 주소" .
# 뒤에 점 '.' 꼭 찍어주세요.    
# 현재 위치한 디렉토리에 git repository 를 생성하기 (다른 파일이 있는 데스크탑과 위치와 같은 경우)
# ex) ~/Desktop
    
git clone "위에서 복사한 github 주소"
# 점을 찍지 않습니다. 

(2) Project Python Package 설치

# 중요!!! 꼭 가상환경 확인해야함!!!
$ pip install django

$ pip install mysqlclient

$ pip install django-cors-headers
# (중요!!!)(installed app 추가 및 기타 사항 추가 필요)

$ pip install ipython

$ pip install django-extensions
# shell_plus 사용 가능...
# (중요!!!)(installed apps 추가 필요)

$ pip install httpie

(3) Django Project 설정

** Branch 생성 및 이동 **

	#브랜치 생성은 'feature/이름-기능' 으로 구분
	$ git checkout -b feature/jaeseung-initial-setting
    
    # git branch feature/jaeseung-initial-setting 으로 생성하고,
    # git checkout feature/jaeseung-initial-setting 으로 이동해도 무방
** Django Project 생성 **
    # ~/Desktop/wecode/00-westagram-backend/suntae

    django-admin startproject westagram
    cd westagram

    # ~/Desktop/wecode/00-westagram-backend/suntae/westagram
    suntae
    ├── manage.py
    └── westagram
        ├── __init__.py
        ├── asgi.py
        ├── settings.py
        ├── urls.py
        └── wsgi.py
** 초기 개발환경(settings.py) 설정 **

1. IP 허용
	# ALLOWED_HOSTS = ['*']
    
2. 주석처리(admin, csrf, auth)

3. project/urls.py 수정

	# from django.urls import path    
    #
    # urlpatterns = [
    # ]

4. mysettings.py(DATABASES, SECRET_KEY)

5. requirement.txt 생성 *****************(중요!!!!)
	# - 협업에서 가장 중요한 점은 동일한 개발환경을 구축해야함
    # - 즉 환경(사용자의 컴퓨터)마다 사용하는 패키지가 동일해야함
    
    touch requirements.txt
    vi requirements.txt
    
    # requirements.txt
    Django==3.2.4
    django-cors-headers==3.7.0
    mysqlclient==2.0.3

6. .gitignore 생성
	# python, pycharm, VisualStudioCode, vim, macOS, Linux, zsh
	# 사이트에 입력 후, Create하여 나온 내용을 .gitignore 파일 생성 후 paste
    
    touch .gitignore
    vi .gitignore

    ############################
    # gitignore.io 결과 전체 복사 #
    ############################

    # 가장 하단 my_settings.py 추가하기
    my_settings.py 
    # ****(중요!!)(보안 관련 파일은 github에 업로드되면 안됩니다.)

7. 프로젝트 서버 실행
	<<최종 초기 프로젝트 구조>>
    ├── .gitignore # 숨김설정 되어 있습니다.
    ├── manage.py
    ├── my_settings.py
    ├── requirements.txt
    └── westagram
        ├── asgi.py
        ├── settings.py
        ├── urls.py
        └── wsgi.py

	<<서버 동작(Runserver)을 통한 오류 검증>>
    python manage.py runserver # manage.py 위치에서 작성

3.. Github Pull Request 생성

  • 모든 작업은 절대로 main브랜치에서 하면 안된다!!!!!!!!
  • main을 기준으로 작업할 브랜치를 생성해서 작업하고,
    작업 완료 후 해당 브랜치를 푸쉬하여 최종적으로 merge되면
    최신화된 main(in Remote)브랜치를 pull을 통해서 main(in Local)로 받아오는 방식으로 진행된다.
git checkout feature/jaeseung-initial-setting(작업한 브랜치 이름)

git status # 브랜치 내에 변경사항 확인
git add . # 브랜치 내에 모든 변경사항에 대해서 add
git commit -m "project initial setting" # commit 작성

git push origin feature/jaeseung-initial-setting # push!!
  • 위 과정을 거친 후, github repository에서 compare & pull request(PR)를 진행
profile
"Your goals, Minus your doubts, Equal your reality"

0개의 댓글