TIL 1차 프로젝트 장고 초기설정

finelinefe·2020년 9월 15일
0

TIL

목록 보기
2/8
post-thumbnail

맥에서 호스트 알아보기 : ifconfig |grep inet
makemigraions / 앱 이름 = 내가 작업한 것만
migrate = 다운받고 남의 것 할때. 완전 초기 설정일때


공식 마스터 브랜치로 작업하면 안 됨! 나만의 브랜치에서 작업하고, 머지나 풀 올리기 위해서만 마스터로 전환한 후 사용해야한다. 잊지 말것

2. branch 생성
$ git branch feature/"이름"
$ git checkout feature/"이름"

3. "이름"으로 django project 생성
$ django-admin startproject "이름"
$ cd "이름"

내가 맡은 역할 분담

  • (1) Backend Django 초기세팅
  • (2) User / Product 공동 모델링
  • (3) 크롤링

공동작업은 넣지 않았음


Backend 장고 초기세팅

  1. 가상환경 생성

  1. 설치한 가상환경 활성화 뒤 장고 설치

  1. 프로젝트 생성, cors-headers 설치

  1. mysqlclient 설치, pip freeze 로 설치된 사항 전체 확인하기

  1. 생선한 프로젝트 폴더로 이동(cd) 뒤 .gitignore 파일 생성

.gitignore 파일은 숨겨져 있으므로 일반 ls 명령어로는 볼 수 없다. ls -al 해서 생성됐는지 확인해야한다.

.gitignore 파일은 .gitignore 사이트에서 사용하는 편집 프로그램과 운영체제를 검색한 후 알맞게 커스텀 된 파일을 받을 수 있다. touch 명령어를 통해서 파일을 생성하고 복붙해 온 것을 그대로 넣고 저장할 것.

5-1. .gitignore 추가사항

### Django ###
*.log
*.pot
*.pyc
__pycache__/
local_settings.py
db.sqlite3i
db.sqlite3-journal
media
*.csv   <-- 추가
my_settings.py   <-- 추가
  1. 보안을 위한 my_settings.py 생성 후 확인
## vi settings.py 에 기록되는 것들


DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'DATABASE 명', --> 생성할 데이터베이스 이름
        'USER': 'DB접속 계정명', --> root
        'PASSWORD': 'DB접속용 비밀번호', --> 내 경우는 없으므로 ' ' 했다.
        'HOST': '실제 DB 주소', --> 와이파이 네트워크
        'PORT': '포트번호',  --> 내 경우는 3306
    }
}

SECRET = {
        'secret':'시크릿키',  --> 시크릿키는 원래 생성된 장고의 settings.py에서 긁어 가져온다.
}

다 하고나면 별도의 보안을 위해 touch 해 준 my_settings.py가 생성된 것을 볼 수 있다.

  1. 장고에서 생성된 settings.py 수정하기

(1) cors 처리를 위해 해당 가상환경에 cors-headers 플러그인 설치를 했으므로(3)번 이에 대해 settings.py를 수정한 뒤 INSTALLD_APPS 안에 추가

INSTALLED_APPS = [
...
		'django.contrib.staticfiles',
		'corsheaders'
]

(2) middleware도 추가


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

(3) settings.py 맨 하단에 추가내용 복붙

#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',
		#만약 허용해야할 추가적인 헤더키가 있다면?(사용자정의 키) 여기에 추가하면 됩니다.
)

(4) 그리고 사용하지 않는 목록은 주석처리

INSTALLED_APPS = [
    # 'django.contrib.admin',
    # 'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'corsheaders',

]

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',
    'corsheaders.middleware.CorsMiddleware',
]

(5) 호스트 설정

ALLOWED_HOSTS = ['*']

(6) my_settings.py DATABASE 설정한 것을 settings.py에 적용

import my_settings  <--my_settings 에서 설정한 것 불러옴
from pathlib import Path

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve(strict=True).parent.parent


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = my_settings.SECRET['secret'] <-- 이부분 수정

(7) 데이터베이스 경로 수정

DATABASES = my_settings.DATABASES <-- 기존 내용 주석처리 후 추가

# DATABASES = {
#     'default': {
#         'ENGINE': 'django.db.backends.sqlite3',
#         'NAME': BASE_DIR / 'db.sqlite3',
#     }
# }

  1. 가상환경 비활성 후 mysql 진입. 테이블 생성. character set utf8mb4 set utf8mb4 collate utf8mb4_general_ci; 추가

코드가 왜 안먹는가..

mysql 깨지는 것을 방지하기 위해 사용한다

create database NAME character set utf8mb4 collate utf8mb4_general_ci; 

  1. 프로젝트 폴더 내 requirement 파일 생성


  1. migrate 후 git 올리기

git 에 올릴 경우 폴더 전체가 아니라 manage.py가 있는 위치에서 그 파일들만 올린다.

초기설정이 완료된 것을 볼 수 있다.


초기설정 관련 영상자료

gitignore 사이트
초기설정1
5:19초 초기설정2
초기설정노션

0개의 댓글