Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

what i learned

[Django] 초기 세팅 본문

Web Development/Django

[Django] 초기 세팅

햄식이111 2022. 7. 15. 20:47

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 파일에 my_settings.py도 넣어줘야 함

.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

 

 

 

 

[참고자료]

pip freeze란?


공부한 내용을 기록하는 공간입니다.

잘못된 정보가 있을 경우 댓글로 피드백 주세요.

올바른 지식을 알려주셔서 감사합니다:)