위코드 프로젝트 장고 초기 셋팅

6364 단어 djangoWeCodeWeCode

첫 시간은 장고 초기 셋팅을 하기로 하였다

장고 초기 셋팅의 순서는 이렇다.

  1. github repo 생성
  2. 그 안에 개인 디렉토리 생성 후 장고 프로젝트 생성
  3. datebases , 로그인 access_token 관련 알고리즘, SECRET KEY를 따로 보관할 파일 생성(생성 후 gitignore에 넣고 깃허브에 공개 거부)
  4. 장고 setttings.py 셋팅
  5. git 브런치 생성 후 push 후 체크

1. github repo 생성

2. 디렉토리 생성 후 기존에 깃허브에서 클론(선택사항)

원래 클론을 받은 상태라면 git branch feature/원하는 작업 으로 바로 옮겨야 한다 마스터에서 하는것은 굉장히 위험한 행동이다.

https://github.com/gusxoqkqh1/afterdev.git

mkdir afterdev 
cd afterdev

**git clone https://github.com/gusxoqkqh1/afterdev.git**  

ll
total 4.0K
drwxrwxr-x 3 ubuntu ubuntu 4.0K  5월  7 19:06 **afterdev**

3. 깃 생성

git init

❯ **ll -a**
total 16K
drwxrwxr-x  4 ubuntu ubuntu 4.0K  5월  7 19:07 .
drwxr-xr-x 43 ubuntu ubuntu 4.0K  5월  7 19:07 ..
drwxrwxr-x  3 ubuntu ubuntu 4.0K  5월  7 19:06 afterdev
drwxrwxr-x  7 ubuntu ubuntu 4.0K  5월  7 19:07 **.git**

4. git remote 로 깃허브와 터미널과 연동하기

❯ git remote add origin https://github.com/gusxoqkqh1/afterdev.git

5. conda 가상환경 생성

conda create -n name json python= 3.8
conda activate json

6. 내가 만든 가상환경에 사용할 pip를 install 명령어로 다운

전에 했던 프로젝트에서 pip 파일을 가저온 후 다운 받자

전에 Wa-Grano_backend 프로젝트에서 했던 파일에서 requirements 참조


cd ~/dev/19-2nd-Wa-Grano-backend
ll
total 28K
drwxrwxr-x 7 ubuntu ubuntu 4.0K  5월  4 20:36 htg
drwxrwxr-x 5 ubuntu ubuntu 4.0K  5월  6 21:48 keunhokim
-rw-rw-r-- 1 ubuntu ubuntu 1.5K  5월  3 16:04 pull_request_template.md
-rw-rw-r-- 1 ubuntu ubuntu   26  5월  3 16:04 README.md
-rw-rw-r-- 1 ubuntu ubuntu  191  5월  3 16:04 **requirements.txt**
drwxrwxr-x 5 ubuntu ubuntu 4.0K  5월  4 19:35 yudongheon
drwxrwxr-x 5 ubuntu ubuntu 4.0K  5월  6 21:48 yunhyunglee

**pip freeze**  # 기존에 있던 가상서버
asgiref==3.3.1
bcrypt==3.2.0
certifi==2020.12.5
cffi==1.14.4
Django==3.1.4
django-cors-headers==3.7.0
mysqlclient==2.0.3
pycparser==2.20
PyJWT==2.0.1
pytz==2020.5
six==1.15.0
sqlparse==0.4.1

cd ~/afterdev
pip install -r ~/dev/19-2nd-Wa-Grano-backend/requirements.txt
django-admin startproject htg 

drwxrwxr-x 2 ubuntu ubuntu 4.0K  5월  7 19:21 htg
-rwxrwxr-x 1 ubuntu ubuntu  659  5월  7 19:21 manage.py

# pip 자료를 원하는 파일로 옮기거나
pip freeze > requirements.txt

or
#저장 되어 있는 파일이 존재한다면 cp -r로 복사하거나 
cp -r ~/dev/19-2nd-Wa-Grano-backend/requirements.txt .

❯ cat requirements.txt
asgiref==3.3.1
bcrypt==3.2.0 # 로그인,회원가입 때 사용 
certifi==2020.12.5
cffi==1.14.4
Django==3.1.4 
django-cors-headers==3.7.0 #Crosss-Origin Resource Sharing (웹 페이지 상의 제한된 리소스를 최초 자원이 서비스된 도메인 밖의 다른 도메인으로부터 요청할 수 있게 허용하는 구조이다. 모르겠당..) 
mysqlclient==2.0.3  # 장고에서 디비를 이용하는 orm 을 위해 쓴다 
pycparser==2.20
PyJWT==2.0.1   # 인가된 회원에게 토큰 발행 
pytz==2020.5
six==1.15.0
sqlparse==0.4.1

drwxrwxr-x 2 ubuntu ubuntu 4.0K  5월  7 19:21 htg
-rwxrwxr-x 1 ubuntu ubuntu  659  5월  7 19:21 manage.py
-rw-rw-r-- 1 ubuntu ubuntu  191  5월  7 19:30  **requirements.txt**

7. 따로 관리 해야 할 정보 파일로 저장

vim my_settings 파일 생성

vim my_settings.py
DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'wagrano5',  # 데이터 베이스 이름 
        'USER': 'root',
        'PASSWORD': 'ubuntu',   #데이터 베이스 암호 
        'HOST': 'localhost',
        'PORT': '3306',
    }
}
SECRET = 'ew&&-5($mz4_t7(+81^zjfk=c$_ah^09%m-8a0*4=cm0_5#bda'

❯ ll
total 16K
drwxrwxr-x 2 ubuntu ubuntu 4.0K  5월  7 19:21 htg
-rwxrwxr-x 1 ubuntu ubuntu  659  5월  7 19:21 manage.py
-rw-rw-r-- 1 ubuntu ubuntu  306  5월  7 19:31 my_settings.py
-rw-rw-r-- 1 ubuntu ubuntu  191  5월  7 19:22 requirements.txt

8. 장고 셋팅 파일

cd htg
vim settings.py

14번 mport my_settings 추가
24번 SECRET_KEY = my_settings.SECRET
29번 ALLOWED_HOSTS = ['*']
34번 INSTALLED_APPS = [
#    'django.contrib.admin',
#    'django.contrib.auth',

'users',
'products',
'corsheaders',
] 

47번 MIDDLEWARE = [
 #   'django.middleware.csrf.CsrfViewMiddleware',
 #   'django.contrib.auth.middleware.AuthenticationMiddleware',
'corsheaders.middleware.CorsMiddleware',

82번 DATABASES = my_settings.DATABASES

맨 아래 
#REMOVE_APPEND_SLASH_WARNING
APPEND_SLASH = False
# APPEND_SLASH 는 자동으로 URL 끝에 슬래시('/')를 붙여 주는 장고의 옵션
(디폴트는 True

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

9 프로젝트 urls.py 셋팅

urls.py 는 쉽게 말해 은행 창구라고 보면 된다.
레스트풀 에 따라 처음 경로를 만날 시 여기 클래스 or 함수를 적용하세요~라는 의미다 wecode에서는 admin 창을 따로 만들 생각이 없으니 지우기로 한다

from django.urls import path
  
  urlpatterns = [
  ]

10. 깃허브에 원하지 않는 파일 비공개 처리

깃허브에 암호키나 알로기즘키, db 등 공개하고 싶지 않은 파일은 비공개 처리 할 수 있다.

vim .gitignore

__pycache__
my_settings.py

git rm --cached pycache/
git rm --cached my_settings.py

git rm --cached 명령어 이용하면 찌꺼기를 제거 할 수 있다는데 잘 모르겠다.
git add . and push 하여 gitignore가 정상적으로 되었는지 확인

11. github에 올리기

git init 생성 후 원래는 main이 아니라 git branch feature/x 로 새로운 브런치를 파서 작업 후 그곳에서 push를 해야 하지만 지금은 내가 관리자니 걍 마스터에서 진행한다 원래, 마스터나 main에서는 pull과 merge말고는 건드는 행위는 굉장히 위험한 작업이다!

git branch feature/default_settings
git checkout feature/default_settings 후 초기셋팅을 진행해야 한다!


git add .
git commit -m '알리고 싶은 메시지 '
git push origin '지금 현재 브런치'

좋은 웹페이지 즐겨찾기