[DJANGO]미니 인스타그램 만들기①초기세팅

박민하·2022년 6월 19일
0

PROJECT

목록 보기
4/17
post-thumbnail

로그인&회원가입 정도만 지원하는 초미니 인스타그램을 구동할 수 있는 API 시스템을 만들어보자!


✅ 기본 세팅

#가상환경 생성
$ conda create -n westagram python=3.9
$ conda activate westagram

#데이터베이스 생성
$ mysql -u root -p
$ create database westagram character set utf8mb4 collate utf8mb4_general_ci;

#패키지 설치
$ pip install django
$ pip install mysqlclient    # Python과 MySQL 을 연결시켜줌
$ pip install PyMySQL    # Python과 MySQL 을 연결시켜줌. mysqlclient가 안되는 경우 방지
$ pip install django-cors-headers    #클라이언트와 서버가 다른 도메인과 포트를 사용해도 접근할 수 있게 함

#Django Project 생성
$ django-admin startproject westagram .    # .을 붙여야 현재 디렉토리에 생성된다

✔ Settings.py 설정

#모든 IP를 Host로 허용
ALLOWED_HOSTS = ['*']

#사용하지 않는 기능 주석처리 & install한 corsheaders 추가
INSTALLED_APPS = [
#    'django.contrib.admin',
#    'django.contrib.auth',
     'corsheaders',
]
MIDDLEWARE = [
#    'django.middleware.csrf.CsrfViewMiddleware',
#    'django.contrib.auth.middleware.AuthenticationMiddleware',
	 'corsheaders.middleware.CorsMiddleware',

#한국 기준으로 타임 존 변경
TIME_ZONE = 'Asia/Seoul'
USE_TZ = False

#my_settings.py에 따로 넣은 값 수정
from my_settings import DATABASES, SECRET_KEY
SECRET_KEY = SECRET_KEY
DATABASES = DATABASES

#공식 문서에 있는 CORS 기본 설정 추가. cors origin을 모두 허용한다.
CORS_ORIGIN_ALLOW_ALL=True   #원하는 IP를 입력하면 해당 IP랑만 소통한다.
CORS_ALLOW_CREDENTIALS = True

CORS_ALLOW_METHODS = (    #http 통신 메소드.
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
)

CORS_ALLOW_HEADERS = (
    'accept',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
)

#슬래시(/) 관련 에러 제거
APPEND_SLASH = False

✔ urls.py 설정

#apps.py
from django.urls import path

urlpatterns = {

}

✔ 파일 생성(requirements.txt, my_settings.py, .gitignore)

  • .gitignore에 들어야가 하는 내용은 여기 참고
#requirements.txt생성, 패키지 리스트를 txt 파일에 저장
$ pip freeze > requirements.txt
#my_settings.py
DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'westagram',    #db이름
        'USER': 'root',	   #DB접속 계정명
        'PASSWORD': 'DB접속용 비밀번호',
        'HOST': '127.0.0.1',    #localhost
        'PORT': '3306',    #mysql의 기본포트 3306
    }
}
SECRET_KEY = '시크릿키' #settings.py에 있는 secret_key 복붙

#.gitignore에 gitignore.io 사이트에서 해당되는 것 추가 & my_settings.py도 추가
...
my_settings.py

✔ 서버 동작(Runserver)을 통한 오류 검증

$ python manage.py runserver

✅ Git

$ git init .
$ git add .
$ git commit -m "ADD: django 초기세팅"
$ git push origin main
profile
backend developer 🐌

0개의 댓글