[Project] Westagram Kickoff (0. 초기 세팅)

이태권 (Taekwon Lee)·2022년 6월 11일
0

[Project] Westagram

목록 보기
1/3
post-thumbnail

<바다 위의 메이플라워 호> (길버트 터커 마지슨)


🚦 Westagram Kickoff (0. 초기 세팅)

  1. conda 가상 환경 생성 및 활성화
  2. MySQL database 접속, 생성, 사용
  3. git clone / branch / checkout
  4. Project Python Package 설치
  5. Django Project 생성 및 설정

1. conda 가상 환경 생성 및 활성화

  • conda create --name (원하는 가상 환경 이름) python=(원하는 파이썬 버전) : 원하는 가상 환경 설정

  • conda env list : 가상 환경 목록 확인


2. MySQL database 접속, 생성, 사용

  • mysql -u root -p : root 계정, 패스워드 입력으로 접속
  • CREATE DATABASE (원하는 database 이름) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; : 데이터 베이스 생성

  • show databases; : database 리스트 출력
  • use (사용할 database 이름) : database 사용

3. git clone / branch / checkout

정해진 GitHub repository에서 불러온 이후 새 branch를 생성, 접속 한다.

  • 클론할 디렉토리로 이동
  • git clone (클론할 github 주소) . : 현재 위치에 클론

  • git branch (브랜치 이름) : 원하는 git branch 생성
  • git checkout (이동할 브랜치 이름) : 원하는 git branch로 이동


4. Project Python Package 설치

먼저 원하는 가상환경에 접속해 있는지 확인!

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

5. Django Project 생성 및 설정

Django Project 생성

이제 본격적으로 project를 만들어 보자!

project를 생성할 디렉토리로 이동하여 아래 명령어를 입력

# `.`를 사용하는 것은 생성할 위치의 디렉토리로 이미 이동했기에 붙이는 것이다.
django-admin startproject westagram .
  • 아래와 같은 관계도가 만들어졌을 것이다.
(프로젝트를 생성한 디렉토리)
├── manage.py
└── westagram
    ├── __init__.py
    ├── asgi.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

settings.py

  • IP 허용
ALLOWED_HOSTS = ['*']
  • 주석 처리(admin, csrf, auth)
INSTALLED_APPS = [
#    'django.contrib.admin',
#    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages'
    'django.contrib.staticfiles',
]
    
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
#    'django.middleware.csrf.CsrfViewMiddleware',
#    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

urls.py - admin 삭제

from django.urls import path
        
urlpatterns = [
]

my_settings.py 생성 (DATABASES, SECRET_KEY)

my_settings.py

cd '생성한 프로젝트 폴더명'
touch my_settings.py
DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'DATABASE 이름',
        'USER': 'MySQL 접속 계정명',
        'PASSWORD': 'MySQL 비밀번호',
        'HOST': '127.0.0.1',
        'PORT': '3306',
     	'OPTIONS': {'charset': 'utf8mb4'}
    }
}

# settings.py의 secret_key 사용
SECRET_KEY = 'django-insecure~~~'

settings.py ↔ my_settings.py 연동

settings.py 수정

from pathlib     import Path #기존에 settings.py 에 있는 코드
from my_settings import DATABASES, SECRET_KEY
        
...
        
DATABASES = DATABASES
        
SECRET_KEY = SECRET_KEY

M1 MySQL setting

PyMySQL package 설치

pip install PyMySQL

설이 이후 settings.py에 추가

from pathlib        import Path #기존에 settings.py 에 있는 코드
from my_settings    import DATABASES, SECRET_KEY
    
import pymysql
    
pymysql.install_as_MySQLdb()

corsheaders

settings.py

 INSTALLED_APPS = [
    ...
   'corsheaders'
]

MIDDLEWARE = [
    ...
    'corsheaders.middleware.CorsMiddleware',
    ...
]

#REMOVE_APPEND_SLASH_WARNING
APPEND_SLASH = False

##CORS
CORS_ORIGIN_ALLOW_ALL  =True
CORS_ALLOW_CREDENTIALS = True
    
CORS_ALLOW_METHODS = (
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
)
    
CORS_ALLOW_HEADERS = (
    'accept',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',    		
)

requirements.txt

목적: 협업에서 동일한 컴퓨터 개발 환경을 갖추기 위함

# redirection으로 개발 환경의 업데이트 내용을 requirements.txt에 저장
pip freeze > requirements.txt
  • vim으로 협업에 불필요한 package 내용은 지우기
vim requirements.txt

.gitignore

git에 저장되면 안되는 것들의 이름을 모아 놓은 파일

  • gitignore.io에서 사용하는 편집 프로그램 및 OS 등 검색
  • python, pycharm, VisualStudioCode, vim, macOS, Linux, zsh 입력
vim .gitignore
  • 위의 gitignore.io에서 입력한 내용 복사 및 붙여넣기
  • my_settings.py 추가

6.프로젝트 서버 실행

기도 메타의 시간

manage.py가 있는 위치의 디렉토리에서 아래의 명령어 실행

python manage.py runserver
  • 아래와 같이 뜨면 초기 세팅은 끝이다!


참고 자료

(tistory, victorydntmd) [CentOS] 리다이렉션 (redirection)

profile
(Backend Dev.) One step at a time

0개의 댓글