1 CRUD (1)
- models.py 작성을 통해 DB와 통신!
2 CRUD (2)
- url.py, view.py, 등 django를 통해 파이썬 로직을 작성하여 기능을 할 수 있는 하나의 API를 만들어낸 것!
회원가입 및 로그인
기능 구현을 통해 DB에 데이터 저장, 호출 이해- 간단한
CRUD 기능 구현
을 통해 게시물ceate
,read
,댓글달기 및 보여주기
를 통해POST/GET
통신 처리 이해- 기본적인
git
흐르을 이해하고github
를 통해 코드리뷰 실행하기!convention
을 지켜 가독성 높은, 협업에 유용한 코드 작성
1. 작업할 프로젝트를 클론받아서 내 로컬로 가져온다
>> git clone
1-1. pull 해서 main branch를 가져온다 -> 맨 처음 clone할 땐 알아서 main branch가 생성되니까 안해도 돼ㅃ
>> git pull origin main
3. 내 main에서 작업할 수 없으니, 로컬 branch를 생성한다
>> git branch @@@
>> git checkout @@@
4. 작업 완료 후 add, commit해서 로컬 git 레포지토리에 반영!
>> git add .
>> git commit -m
5. 원격지로 push 해주기
>> git push origin @@@
6. github 사이트에서 pull request로 merge 요청!
7. main 관리자가 merge 해주면 끗!
8. 가장 최신의 작업내용을 pull 받아서 작업 시작하기
>> git pull origin main
내가 작업 한 내용이 merge 되어서 내 작업내용이 가장 최신의 main 프로젝트와 같다고 해도,
merge된 main을 pull 받아서 작업해야 충돌나지 않는다!
맨 처음 올리는 사람이 개발 환경을 세팅해서 main branch에 프로젝트를 올리면!
다른 팀원들이 main branch를 pull 받아서 작업하면 되는 것!
dJango source code
pip freeze > requirements.txt pip install requirements.txt
해당 파일 내에 환경설정에 필요한 요소들을 미리 적어두는 것!
> conda create -n westagram python = 3.8 -> 가상환경 생성
> conda activate westagram -> 가상환경 활성화
> pip install django -> 가상환경에 django, MySQLclient 설치
> pip install mysqlclient
> django-admin startproject westagram -> 프로젝트 생성
- .gitignore
파일 설정
: github을 통해 소스 공유를 하게 될 것이지만, 그 중에서도 공유하면 안될 것들이 있다!
(예를 들면 DB 암호라던지.. 기본값으로 박아둘 무언가 중요한 정보라던지...)
# 프로젝트 폴더 내 .gitignore 파일 생성
touch .gitignore
vi .gitignore
gitignore.io라는 웹사이트에 접속해서 vscode, Pycharm, Python, Django 등을 선택하고 내용 생성해서
.gitignore 파일 내부에 입력해주기!
#### Django ###
...
하위에 추가해줄 것..!
my_settings.py
(my_settings.py도 보안과 관련된 파일이므로..!)
- settings.py 수정
# 경로: westagram/settings.py
import my_settings # my_settings.py 내용 import
SECRET_KEY = my_settings.SECRET # my_settings.py 내용에 있는 secret key 참조
AllOWED_HOSTS = ['*']
INSTALLED_APPS = [
# 'django.contrib.admin',
# 'django.contrib.auth', # 필요없는 것 주석처리
]
MIDDLEWARE = [
# 'django.middleware.csrf.CsrfViewMiddleware',
# 'django.contrib.auth.middleware.AuthenticationMiddleware', # 필요없는 것 주석처리
]
DATABASES = my_settings.DATABASES # my_settings.py 내용에 있는 데이터 참조
사용하지 않는 부분들은 주석처리 해주기!
SECRET_KEY 부분은 my_settings 내부의 key 값으로 사용하도록 수정해주어야 한다!
- my_settings.py 수정
# 프로젝트 폴더 내 my_setting.py 파일 생성 및 내용 작성
DATABASES = {
'default' : {
'ENGINE' : 'django.db.backends.mysql',
'NAME' : 'DATABASE 명',
'USER': 'DB접속 계정명',
'PASSWORD': 'DB접속용 비밀번호',
'HOST': '실제 DB 주소',
'PORT': '포트번호',
}
}
SECRET = '시크릿키' # 시크릿키는 settings.py 에서 가져오기
내가 사용할 DB 정보를 입력하고
SECRET_KEY 부분은 settings.py에서 가져올 것!
- corsheaders 플러그인 추가
django-cors-headers는 Cross-Origin Resource Sharing(CORS)에 요청되는 server headers를 다루기 위한 Django app이다. CORS header를 추가하는 것은 다른 도메인으로부터 내 resource에 접속 가능하도록 허용하는 것(Cross domain)
pip install django-cors-headers
- settings.py 수정
# INSTALLED_APPS 안에 내용 추가
INSTALLED_APPS = [
'corsheaders',
...
]
# MIDDLEWARE 안에도 내용 추가
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware'
...
]
# 하단에 아래 내용 추가(허용할 값 정의)
#REMOVE_APPEND_SLASH_WARNING
APPEND_SLASH = False
##CORSsettings.py
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 생성
앞서 언급한 팀프로젝트 환경설정을 위한 파일 작성!
동일한 환경에서 동일한 코드를 만지며 작업을 할 수 있어야하기 때문!
# pip free의 결과를 requirements.txt에 기록
pip freeze > requirements.txt
** DB와 연동해서 작업 하고 싶을 때에는
서버가 켜져있는지, DB와 잘 연결되어있는지, git 작업 폴더에 있는지,
conda 가상환경이 켜져있는지, 등을 필수로 확인해 줄 것..!!!
(다 무언가를 확인하지 않은 본인의 경험담.. ^^...