TIL29 - PyMySQL & CORS

Kiyong Lee·2021년 9월 9일
0

Django

목록 보기
3/35

PyMySQL & CORS


PyMySQL

django-admin startproject projectname 하면 생기는 settings.py에서

pymysql import 후 pymysql.install_as_MySQLdb()를 선언한다.

그러면 pymysql은 무엇인가?

mysql을 파이썬에서 사용할 수 있는 라이브러리 중 하나이며, 가장 설치가 쉽다.

그리고 pymysql.install_as_MySQLdb()를 통해 기본 DB모듈을 변경한다.

이건 맥북 M1의 mysql 세팅이라고 한다.


django-cors-headers

cors란 무엇일까?

풀네임은 Cross-Origin Resource Sharing으로,
보안상의 문제없이 AJAX등의 통신을 하기 위해 사용하는 메커니즘이다.

아직 내가 개발해보진 않았지만, API서버를 만들 때, AJAX 통신 이슈는 대부분 Cross Domain이슈라고 한다.

Cross Domain이 서로 다른 도메인에서 JS로 접근하려 하거나,
다른 서버에서 AJAX통신의 결과를 받는 행위기 때문이다.

pip install django-cors-header로 설치 한 후, settings.py에 추가한다.

그리고 INSTALLED_APPS 항목에 corsheaders를 추가한 후,

MIDDLEWARE에 corsgeader.middleware.CorsMiddleware를 맨 위에 추가한다.

이 경로는 Response 수신을 위해 추가하는 것이다.

그리고 MIDDLEWARE 아래에 변수들을 추가해준다.

#사이트간 요청을 허용하는 호스트에 대한 변수이다. 모든 호스트를 허용해야 하기 때문에 True를 입력하지만 기본값은 False
CORS_ORIGIN_ALLOW_ALL = True

#True라면 쿠키가 사이트 간 HTTP 요청에 포함되도록 허용한다.
CORS_ALLOW_CREDENTIALS = True

CORS_ALLOW_METHODS = (
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
)

#실제 요청을 할 때 사용되는 비표준(non-standard) HTTP 헤더의 리스트이다.
CORS_ALLOW_HEADERS = (
    'accept',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
)
profile
ISTJ인 K-개발자

0개의 댓글