위코드 프로젝트 장고 초기 셋팅
첫 시간은 장고 초기 셋팅을 하기로 하였다
장고 초기 셋팅의 순서는 이렇다.
- github repo 생성
- 그 안에 개인 디렉토리 생성 후 장고 프로젝트 생성
- datebases , 로그인 access_token 관련 알고리즘, SECRET KEY를 따로 보관할 파일 생성(생성 후 gitignore에 넣고 깃허브에 공개 거부)
- 장고 setttings.py 셋팅
- 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 '지금 현재 브런치'
Author And Source
이 문제에 관하여(위코드 프로젝트 장고 초기 셋팅), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hong_tae/위코드-프로젝트-장고-초기-셋팅저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)