익히는게 너무 어렵고 험난했던 과정 .. 지금도 잘 아는건 아니지만
다음에 편하게 보고 참고하려고 작성한다.
conda 가상환경 목록보기 : conda env list
conda 가상환경 만들기 : conda create -n "가상환경이름" python=3.8(버전이름)
conda 가상환경 활성화 : conda activate "가상환경이름" <-여기까지 초기셋팅
conda 가상환경 비활성화 : conda deactivate
conda 가상환경 삭제 : conda env remove -n "가상환경이름"
conda 가상환경 익스포트 : conda env export> "가상환경이름.yaml"
conda 익스포트->임포트 : conda env create -f "가상환경이름.yaml"
pip install django
pip install PyMySQL (맥 M1)
pip install django-cors-headers
pip freeze 명령어를 이용해서 잘 설치되었는지 확인
mysql.server start
mysql -u root -p
mysql> create database "데이터베이스이름" character set utf8mb4 collate utf8mb4_general_ci;
django-admin startproject 프로젝트 이름
cd 프로젝트이름 (폴더 이동)
- ALLOWED_HOSTS = ['*']
2번에서 pip install django-cors-headers 설치시
- settings.py에 INSTALLD_APPS과 MIDDLEWARE 안에 추가 사항
INSTALLED_APPS = [ 'corsheaders' ] MIDDLEWARE = [ 'corsheaders.middleware.CorsMiddleware', ]
- CORS 추가 설정
##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', )
SECRET_KEY, DATABASE등은 따로 관리 (공유X)
생성한 프로젝트 폴더로 이동후 (cd)
touch my_settings.py
DATABASES = {
'default' : {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'DATABASE 명',
'USER': 'DB접속 계정명', # 예시) 'root',
'PASSWORD': 'DB접속용 비밀번호',
'HOST': '127.0.0.1',
'PORT': '3306',
'OPTIONS': {'charset': 'utf8mb4'}
}
}
SECRET_KEY = '시크릿키' #settings.py에 있는 secret_key 를 사용합니다.
맥OS M1 pymysql 설치 기준
from pathlib import Path #기존에 settings.py 에 있는 코드
from my_settings.py import DATABASES, SECRET_KEY
import pymysql
pymysql.install_as_MySQLdb()
...
DATABASES = DATABASES
SECRET_KEY = SECRET_KEY
예시)
서버 동작을 통한 오류 검증
터미널을 3분할 하여 mysql / 입력 / 서버동작 용도로 사용하면 편리
python manage.py runserver
생성한 프로젝트를 git 으로 관리하기 위해 manage.py가 위치한 곳으로 이동
git init : git 초기화
.gitignore : 파일 작성 (공유하지 않을 소스 관리)
참고 사이트 ) gitignore.io
키워드 예시 ) python, pycharm, VisualStudioCode, vim, macOS, Linux, zshcd '프로젝트 폴더명' touch .gitignore vi .gitignore ############################ # gitignore.io 결과 전체 복사 # ############################ 가장 하단 my_settings.py 추가하기 my_settings.py (보안 관련 파일은 github에 업로드되면 안됩니다.)
git add . : 초기셋팅 완료 후 add
git commit -m "ADD: 프로젝트이름 초기셋팅(예시)" : commit 남기기
8-1 Git Repository 생성 후 연동
git hub에 '프로젝트이름' repository 생성 (추가설정 모두 체크해제)
git remote add origin repository 주소 :
로컬(Django)프로젝트 와 github repository 연동
git push origin main #여기서 main은 branch 이름 :
초기셋팅 완료 후 main 브랜치 깃허브에 push
git branch 브랜치 이름 : 브랜치 생성
git checkout 브랜치 이름 : 해당 브랜치로 이동
git checkout -b 브랜치 이름 : 생성 후 이동
python manage.py startapp 프로젝트이름 : settings.py 설정완료 상태에서
settings.py installed_apps 추가
# settings.py
INSTALLED_APPS = [
...
'project',
git add .
git commit -m "Add:커밋할 멘트(예시)" : 초기셋팅 커밋
git push origin 브랜치 이름 : Github repository branch push
models.py 작성 : mysql에 모델링한 데이터베이스 작성
models.py 작성한 내용을 DB에 적용하기 위해 (makemigrations)설계도를 만듬
models.py 내용이 수정될 때 마다 새로 마이그래이션 해주어야 한다.
python manage.py makemigrations app이름
python manage.py migrate
예시 )
(메인최상위/urls.py)
from django.urls import path, include
urlpatterns = [
path('owners', include('owners.urls'))
]
(앱이름/urls.py)
from django.urls import path
from .views import OwnerView, DogView
urlpatterns = [
path('/owner', OwnerView.as_view()),
path('/dog', DogView.as_view())
]
http -v POST 127.0.0.1:8000/product name='이름' birth='생년월일' job='학생'
http -v GET 127.0.0.1:8000/products
mysql -u root -p : mysql 접속
SHOW database : 데이터베이스 확인
USE database_name : 사용할 데이터베이스 선택
SHOW tables : 테이블 확인
DESC table_name : 테이블 정보 확인
SELECT * FROM table_name : 해당테이블 모든데이터 확인
git add .
git commit -m "커밋 메시지"
git push origin 작업했던브랜치이름
작업한브랜치→ main 브랜치로 pull request
가지를 합치는 것
내가 헷깔리지 않게 한곳에서 보기위해 정리해 보았다.
커맨드도 외우고 얼른 프로세스를 눈에 익혀야겠다 !