ACHO.pk devlog

[멋쟁이사자처럼11기] Django 구조 및 동작 원리 본문

멋쟁이사자처럼

[멋쟁이사자처럼11기] Django 구조 및 동작 원리

Acho 2023. 2. 2. 17:04

1. DRF 설치 및 프로젝트 생성

명령프롬프트에서 바로 폴더 생성하고 해당 경로에 가상환경을 생성할 수 있지만,, 나는 바탕회면에 폴더를 생성하고 해당 폴더의 명령 프롬프트를 켜는게 더 편하므로 후자의 방법으로 진행하겠다.

 

 

※ 주의

pipenv가 설치되어 있지 않으면 명령어가 먹질 않으니 꼭 설치 먼저 해주자

pip install --user pipenv

하지만 설치해서 바로 사용할 수 없다.  이유는 아래 블로그 참고했으니 확인해보길.

 

패키지들이 설치되는 경로를 확인하기 위해 아래와 같은 명령어를 실행하면 된다.

 python -m site --user-site

아래 해당경로로 폴더를 찾아가면 되고, AppData 폴더가 보이지 않을 때는 https://ojji.wayful.com/2016/03/How-to-Show-AppData-folder-on-Windows-Explorer.html이 블로그를 참고하면 된다.

 

이후에 환경설정에서 path에 해당 경로를 추가하는 작업을 하면 끝. 

나머지는 https://hoohaha.tistory.com/92 이걸 참고하면 좋을듯. 

 

 

 

1-1. 가상환경 세팅

pipenv shell

가상환경을 세팅하는 이유는 각각의 디렉토리 별로 관리되는 프로젝트의 파이썬 패키지가 서로 간섭받지 않도록 구성해야하기 때문이다.

 

 

1-2. DRF 설치

pipenv install djangorestframework

Django를 통해서 외부의 요청과 응답을 받아, 사용자의 요청을 처리할 수 있는 API를 Django로 구성할 수 있는 패키지를 설치하는 것이다.

 

 

1-3. 프로젝트 생성

 django-admin startproject "프로젝트명"

당연히 cmd에서 해당 명령어를 칠 때 큰따옴표는 빼야한다. 

 

 

1-4. RestFramework 사용하기

python 파일을 우리가 만든 가상환경으로 세팅을 해줘야한다.

먼저 하단 형광펜 부분을 클릭한 후 

이전에 미리 설치한 가상환경을 찾아 선택하면 된다. vs code에서 가상횐경으로 파이썬 실행환경을 바꿔줘야 다른 프로젝트와 패키지가 꼬여서 프로그램이 정상적으로 실행되지 않는 걸 막아준다. 

 

그 다음에 settings.py에 명시를 해줘야 restframework를 사용할 수 있다.

ALLOWED_HOSTS = ["*"]

모든 호스트에서 처리를 할 수 있게끔 *(애스터리스크)를 넣어줘야 호출하는게 정상적으로 인식이 된다.

 

INSTALLED_APPS = [
    'rest_framework',
]

'rest_framework'를 명시해야 설치한 패키지의 기능들을 활용할 수 있다.

 

 

 

 

2. Django App 추가

python 터미널을 열어서 해당 명령어를 실행해주면 앱을 생성해준다. 마찬가지로 cmd에서는 큰따옴표를 제거하고 사용하면 된다.

python manage.py startapp "앱 이름"

 

products 폴더 하위에 apps.py에 들어가보면, ProductsConfig라고 해서 products의 이름을 갖고 있는 구조를 갖고 있다.

 

django가 앱을 인식할 수 있도록 settings.py/Installed_apps에 생성한 앱을 추가해줘야한다.

INSTALLED_APPS = [
    'products',  // 방법 1
    'products.apps.ProductsConfig', // 방법 2
]

 

 

 

3. CORS 설정

django api를 로컬에서 띄운 후 정상적으로 호출하기 위해서는 외부 도메인이 호출할 수 있도록 허용해주는 CORS 관련 pip 패키지를 설치해야한다.

pipenv install django-cors-headers

 

3-1. apps에 추가

설치가 완료되면 settings.py/installed_apps에 추가해줘야 정상적으로 기능을 사용할 수 있다.

INSTALLED_APPS = [
    'corsheaders',
]

 

3-2. middleware에 설정 추가

 

settings.py/middleware에 관련된 설정을 추가해줘야한다.

MIDDLEWARE = [ 
    'corsheaders.middleware.CorsMiddleware'
]

 

3-3. CORS 관련 설정 추가

모든 외부 도메인에 대해서 요청을 받아 처리한다는 뜻이다.

 

CORS_ORIGIN_ALLOW_ALL = True

 

도메인을 특정해서 요청을 처리하게 하려면 아래 코드처럼 괄호 안에 도메인 규칙을 넣을 수 있다.

CORS_ORIGIN_WHITELIST = ()

 

 

Comments