[Westagram] -1
[Mission 1] Django 초기 세팅
1. 가상환경
1-1. 가상환경 생성
conda create -n westagram python=3.9
1-2. 가상환경 활성화
conda env list # 가상환경 목록 출력
conda activate westagram # 가상환경 활성화
2. 프로젝트 초기 설정
2-1. Database 생성
mysql> CREATE DATABASE westagram CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
2-2. Project 초기세팅
- Project Repository Clone
# 프로젝트를 시작할 디렉토리로 이동해주세요.
# 현재 위치한 디렉토리를 git repository 로 만들기 (미리 directory 생성한 경우)
# ex) ~/Desktop/wecode/westagram
git clone "위에서 복사한 github 주소" . # 뒤에 점 '.' 꼭 찍어주세요.
# 현재 위치한 디렉토리에 git repository 를 생성하기 (다른 파일이 있는 데스크탑과 위치와 같은 경우)
# ex) ~/Desktop
git clone "위에서 복사한 github 주소" # 점을 찍지 않습니다.
- Project Python Package 설치
# (중요) 꼭 가상환경 확인해주세요!
pip install django
이후에 MySQL server에 접속하기 위한 package (중요) mysql 설치되어 있는지 먼저 확인해주세요
pip install mysqlclient
pip install django-cors-headers
- Django Project 설정
- branch 생성 & branch 이동
- 브랜치 생성은 feature/이름-기능으로 구분합니다.
- 개인 프로젝트 코드는 각자의 디렉토리로 관리하게 됩니다.
- 브랜치 생성 후, 해당하는 feature 브랜치로 이동해서, 각자의 디렉토리 생성, django project를 실행하게 됩니다.
# 경로는 모두 예시입니다.
# 각자 생성한 repository 의 위치로 이동해주세요.
# ~/Desktop/wecode/00-westagram-backend
.
├── README.md
├── guide
├── pull_request_template.md
└── students
└── karam
- Django Project 생성
# ~/Desktop/wecode/00-westagram-backend/karam
django-admin startproject westagram
cd westagram
# ~/Desktop/wecode/00-westagram-backend/karam/westagram
karam
├── manage.py
└── westagram
├── __init__.py
├── asgi.py
├── settings.py
├── urls.py
└── wsgi.py
- 초기 개발환경 설정
# westagram/settings.py
ALLOWED_HOSTS = ['*']
...
INSTALLED_APPS = [
# 'django.contrib.admin',
# 'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages'
'django.contrib.staticfiles',
]
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',
]
# westagram/urls.py
from django.urls import path
urlpatterns = [
]
- my_settings.py 생성 (DATABASES, SECRET_KEY)
- django 설정에 존재하는 내용 중 SECRET_KEY, DATABASES 등은 소스로서 공유해야 하는 내용이 아닙니다. 별도의 파일 혹은 환경변수로서 관리하는게 좋습니다.
- settings.py에 바로 저장되는 방식은 지양해야 합니다.
cd '생성한 프로젝트 폴더명'
touch my_settings.py
(참고) 프로젝트 디렉토리 구조 구조
.
└── karam
├── manage.py
├── my_settings.py
└── westagram
├── __init__.py
├── asgi.py
├── settings.py
├── urls.py
└── wsgi.py
# my_settings.py
DATABASES = {
'default' : {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'DATABASE 명',
'USER': 'DB접속 계정명',
'PASSWORD': 'DB접속용 비밀번호',
'HOST': '127.0.0.1',
'PORT': '3306',
'OPTIONS': {'charset': 'utf8mb4'}
}
}
SECRET_KEY = '시크릿키' #settings.py에 있는 secret_key 를 사용합니다.
# settings.py
from pathlib import Path #기존에 settings.py 에 있는 코드
from my_settings import DATABASES, SECRET_KEY
...
DATABASES = DATABASES
SECRET_KEY = SECRET_KEY
- corsheaders
# settings.py
INSTALLED_APPS = [
...
'corsheaders'
]
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware',
...
]
...
#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',
)
- requirements.txt 생성
- 협업에 가장 중요한 점은 동일한 개발환경을 구축해야 한다는 것입니다.
- 즉, 환경(사용자의 컴퓨터)마다 사용하는 패키지를 동일하게 해야합니다.
- manage.py가 있는 위치에서 아래 커맨드를 작성해주세요.
pip freeze
# 생성한 requirements.txt를 확인해서 필수 패키지를 복사 붙여넣기 후, 저장해주세요.
touch requirements.txt
vi requirements.txt
# requirements.txt
Django==3.2.4
django-cors-headers==3.7.0
mysqlclient==2.0.3
- .gitignore 생성
- gitignore.io 에서 키워드를 추가 후 Create를 해주세요.
- Create하여 나온 내용을 .gitignore 파일 생성 후, 붙여넣기
touch .gitignore
vi .gitignore
############################
# gitignore.io 결과 전체 복사 #
############################
# 가장 하단 my_settings.py 추가하기
my_settings.py (보안 관련 파일은 github에 업로드되면 안됩니다.)
- 프로젝트 서버 실행
# 최종적인 초기 프로젝트 구조
├── .gitignore # 숨김설정 되어 있습니다.
├── manage.py
├── my_settings.py
├── requirements.txt
└── westagram
├── asgi.py
├── settings.py
├── urls.py
└── wsgi.py
- 서버 동작(Runserver)을 통한 오류 검증
python manage.py runserver 8080 # manage.py 위치에서 작성
Github Pull Request 생성
3-1. git add & commit
- Add & Commit
- git init을 통해 새로 git repository를 만든 후 연동하는 작업을 진행하지 않아도 괜찮습니다. 이미 clone을 받았기 때문입니다.
### (중요) git branch 를 꼭 feature/suntae-initial-setting 으로 변경해주세요!
### main 에서 작업하시면 안됩니다!
git checkout feature/karam-initial-setting
git add .
git commit -m "project initial setting"
git push origin feature/karam-initial-stting
- pull Request
- 프로젝트 github repository로 접속합니다.
- 보통 최근 push한 내역이 나타납니다.
- 나타나지 않는 경우 Pull requests 탭으로 이동 후 New pull request 선택 후 compare 부분에 본인이 push한 브랜치를 설정해주세요.
- Create pull request를 통해 PR을 생성해주세요.
Author And Source
이 문제에 관하여([Westagram] -1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kimkrh/Westagram-1저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)