[Westagram]#1 django 초기세팅

Jimin_Note·2022년 6월 13일
0

🫐westagram

목록 보기
1/4
post-thumbnail

🌱가상환경 생성

가상환경 생성

  • westagram 이라는 이름의 가상환경 생성
$ conda create -n westagram python=3.9

가상환경 활성화

$ conda activate westagram

(+가상환경 비활성화)

$ conda deactivate westagram

🌱프로젝트 초기생성

database 생성

CREATE DATABASE westgram; #기본 생성

Project 초기세팅

$ mkdir jimin #프로젝트 시작할 디렉토리 생성
$ cd jimin #해당 디렉토리로 이동
$ git clone "github 주소" . #뒤에 점 '.' 꼭 찍어주기

Project Python Package 설치

$ pip install django

$ pip install mysql

$ pip install mysqlclient
   
$ pip install django-cors-headers

Django Project 설정

1. branch 생성 후 이동(feature/이름-기능)

git branch feature/jimin-initial-setting
git checkout feature/jimin-initial-setting

2. Django Project 생성

#현재경로 : jimin
django-admin startproject westagram .
cd westagram
---------------------------------------
jimin
├── manage.py
└── westagram
    ├── __init__.py
    ├── asgi.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

3. 초기 개발환경 설정 settings.py

  • IP허용
ALLOWED_HOSTS = ['*']
  • 주석처리(admin, csrf, auth)
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)
    장고 설정에 존재하는 내용 중 SECRET_KEY, DATABASE 등은 소스로서 공유해야 하는 내용이 아니기 때문에 별도의 파일 혹은 환경변수로서 관리
touch my_settings.py
        

└── jimin
    ├── manage.py
    └── westagram
        ├── __init__.py
        ├── asgi.py
        ├── settings.py
        ├── urls.py
        └── wsgi.py
    ├── my_settings.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.pymy_settings.py 연동
#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',
    ...
]

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 생성
    협업에서 가장 중요한 점은 동일한 개발환경을 구축해야 된다는 것
    내가 어떠한 개발환경으로 구축하였는지 말해주는 파일을 만들어 충돌을 방지
$ pip freeze < requirments.txt 

.gitignore 생성

git에 업로드하면 안되는 보안 관련 파일 관리

touch .gitignore

gitignore.io
👉 python, pycham, visualstudiocode, vim, linux, macos

위 키워드들 Create하여 .gitingnore에 붙여넣기

        
############################
# 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
  • 서버구동
python manage.py runserver # manage.py 위치에서

🌱Github Pull Request 생성

이 프로젝트에서는 git clone을 받았기 때문에
git init,git remote 과정은 하지 않아도 된다.

git checkout feature/jimin-initial-setting
#브랜치 이동

git add . 
git commit -m "project initial setting" #커밋

git push origin feature/jimin-initial-stting

git push까지 이상없이 완료했으면
위스타그램 프로젝트 github repository 접속하여

클릭하여 PR생성

profile
Hello. I'm jimin:)

0개의 댓글