what i learned
[Django] 초기 세팅 본문
1. 가상환경에서 시작하기
$ conda activate 가상환경명
2. 데이터를 넣을 DB 만들기
MySQL 접속
$ mysql -u root -p
비밀번호 입력 후 DB 생성하기
(비밀번호는 창에서 보이지 않는다..!)
CREATE DATABASE DB명 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
+) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; 명령어는 한국어와 이모지 지원 기능이지만 자동으로 지원될 수도 있음
3. 클론하기
$ git clone 클론하려는_깃주소
4. python package 설치
$ pip install django
$ pip install mysqlclient
$ pip install django-cors-headers
+) sql 먼저 설치하고 mysqlclient를 설치해야한다!
(깃으로 관리할 경우) 브랜치 생성
$ git branch 브랜치명
5. settings.py 중요 정보 my_settings.py 에 옮기기
개인정보가 담긴 코드를 git에 올리면 유출위험이 있으므로 my_settings.py 에 담아 열람할 수 없게 한다.
1) my_settings.py에 database, secretkey 저장 후 settings.py 에서 settings.py import 해주기
my_settings.py는 최상위 경로인 manage.py 가 있는 곳에서 생성한다.
$ touch my_settings.py
$ vi my_settings.py
# my_settings.py 에 작성되는 내용
DATABASES = {
'default' : {
'ENGINE': 'django.db.backends.mysql',
'NAME': '사용하는 DB명',
'USER': '사용자명(위 과정에서 root로 사용했기 때문에 root 적으면 됨)',
'PASSWORD': 'mysql PW',
'HOST': '127.0.0.1',
'PORT': '3306'
}
}
SECRET_KEY = 'settings.py에 있는 secret키 긁어오기'
# settings.py 에 import할 내용
from my_settings.py import DATABASES, SECRET_KEY
+) settings.py의 installed app에서 사용하지 않는 기능 삭제 (미들웨어도!!)
- auth, cors
+) url의 admin도 사용하지 않으므로 삭제
2) (m1일 경우)PyMuSQL도 import 해주기
# settings.py
import pymysql
pymysql.install_as_MySQLdb()
3) cors header 및 슬래시 오류 잡는 코드 넣어주기
# 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) .gitignore 파일 생성 후 .gitignore 코드 생성해주는 사이트에서 코드 복사 후 my_settings.py 도 넣어주기 -python, pycharm, visualstudiocode, vim, zsh, macOS, linux
$ touch .gitignore
$ vi .gitignore
.gitignore 파일이 잘 들어갔는지 확인하고 싶다면,
ls -al
명령어로 확인한다.
+) .gitignore 파일 역시 최상위 경로인 manage.py에서 작성되어야 한다.
6. requirements.txt 생성 -> 개발용, 배포용으로 나눠줘야함
manage.py 파일이 있는 곳에서 pip freeze 해야한다.
pip freeze는 pip install 명령으로 지금까지 어떤 모듈을 설치했는지 확인할 수 있는 명령이다. pip install로 설치한 모듈과 현재 컴퓨터에 설치된 이러한 모듈의 버전을 알려주는 파일이다.
$ touch requirements.txt
$vi requirements.txt
# requirements.txt
Django==3.2.4
django-cors-headers==3.7.0
mysqlclient==2.0.3
# m1의 경우 아래 패키지도 추가!
PyMySQL==1.0.2
7. runserver 돌려보기
manage.py 돌려보고 오류가 안나면 끝!!
$ python manage.py runserver
[참고자료]
공부한 내용을 기록하는 공간입니다.
잘못된 정보가 있을 경우 댓글로 피드백 주세요.
올바른 지식을 알려주셔서 감사합니다:)