Project 초기 세팅

Jina·2020년 4월 30일
0

Project

목록 보기
1/7

for Backend

1. conda activate

내 프로젝트 전용 가상환경 만들기

2. pip install django

가상환경에 장고 설치하기

3. django-admin startproject

장고 프로젝트 만들기

4. git ignore

git hub에 올리고 싶은것 올리고 싶지 않은 것, 올려서는 안되는 것들을 구분하기 위해 깃이 설치된 디렉토리.gitignore 파일을 생성해서 관리해야 함

gitignore.io 여기서 mac, python, django 등을 입력하여 ignore할 파일 만들기

manage.py 있는 곳에 vim .gitignore 을 이용하여 위의 내용 붙여넣기

csv 파일도 gitignore에 올리고 싶다면

*.csv 라고 써서 추가해주기

media

gitignore django 부분에
media도 추가해주기

아래와 같이 추가

# .gitignore

### Django ###
 *.log
 *.pot
 *.pyc
 __pycache__/
 local_settings.py
 db.sqlite3
 db.sqlite3-journal
 media
 *.csv

5. pip install django-cors-headers

보안관련 세팅!

pip install django-cors-headers

을 이용아여 django-cors-headers 설치하기

설치했다면 settings.py의 INSTALLD_APPS 안에 추가해주기

# settings.py

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

middleware도 추가

# settings.py

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

마지막으로 허용할 값을 정의하기
settings.py 아래부분에 아래의 내용 추가해주기

##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',
)

6. settings.py

사용하지 않는 내용들 주석처리하기

여기서는 admin/auth/csrf를 주석처리 할 것

### settings.py


 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',
 ]

7. my_settings.py 만들기

보안 및 데이터베이스 설정을 위해서 만듬

manage.py 있는 곳에

vim my_settings.py

위의 명령어를 이용하여 만들기

SECRET_KEY 설정

# my_settings.py
 SECRET_KEY = 'django settings.py에 있던 SECRET_KEY'

위의 내용 입력해주기

DATABASES 설정

# my_settings.py
 DATABASES = {
         'default' : {
                 'ENGINE': 'django.db.backends.mysql',
                 'NAME': 'project 이름',
                 'USER': 'root',
                 'PASSWORD': 'mysql비밀번호',
                 'HOST': 'localhost',
                 'PORT': '3306',
                 'OPTIONS': {'charset': 'utf8mb4'},
                 'TEST': {
                         'CHARSET': 'utf8mb4',
                         'COLLATION': 'utf8_general_ci'
                 }
         }
 }

위의 내용 입력해주고 settings.py에 원래 있던 DATABASES 내용 주석처리

ALLOWED_HOSTS 설정

ALLOWED_HOSTS = []

위의 내용입력해주기

settings.py에 설정

settings.py에 있던 내용들을 my_settings.py로 이동하게 해줘야함

아래의 내용 입력 및 주석처리 해주기

import my_settings

SECRET_KEY = my_settings.SECRET_KEY
ALLOWED_HOSTS = my_settings.ALLOWED_HOSTS

DATABASES = my_settings.DATABASES

 #DATABASES = {
 #    'default': {
 #        'ENGINE': 'django.db.backends.sqlite3',
 #        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
 #    }
 #}
 #

.gitignore 확인

보안을 위한 내용이기 때문에 my_settings.py는 git에 올라가면 안됨
.gitignore에 있는지 확인하기

 ### Django ###
 *.log
 *.pot
 *.pyc
 __pycache__/
 local_settings.py
 db.sqlite3
 db.sqlite3-journal
 media
 my_settings.py
 *.csv

위와 같이 my_settings.py가 gitignore에 있어야함
없으면 추가해주기

8. mysql 깔기

brew install mysql

mysql 설정

mysql 시작하기

mysql.server start

설정시작하기

mysql_secure_installation

설정을 시작하면 여러가지 질문이 나타남

  1. 비밀번호 복잡도 검사 과정 (n 추천) --> yes로 하면 매번 로그인시 귀찮고 설정이 힘듬
  2. 비밀번호 입력 & 확인
  3. 익명 사용자 삭제 (y)
  4. 원격 접속 허용하지 않을 것인가? (n)
  5. test DB 삭제 (y)
  6. previlege 테이블을 다시 로드할 것인지 (y)

9. pip install mysqlclient

Django 3.0 MySQL 연결하기

10. urls.py

위에서 amdin 주석처리 했으므로 urls.py에서도 지우기

11. pip freeze

pip freeze는 설치된 pip 내역 보여줌

pip freeze > requirements.txt

위의 명령어를 이용하여 pip 설치된 파일을 requirements.txt로 보내서 git clone을 받을시 필요한 내용을 깔 수 있도록 해줌

0개의 댓글