본문 바로가기
Django/Django Rest Framework

1. Django DRF VScode settings

by S.T.Lee 2022. 6. 18.

DRF - Django Rest Framework

도구 - Visual Studio Code

 

Extensions

1) Python

2) Django

 

Terminal

1) 가상환경 셋팅

# 가상환경 생성 #첫 venv 가상환경 선언 하겠다 #마지막 venv venv파일 이름 설정
python -m venv venv
# 가상환경 생성 확인
dir
# 가상환경 진입
venv/Scripts/activate
    # 상기 가상환경 진입이 안될시(하단 에러문)
    venv/Scripts/activate : 이 시스템에서 스크립트를 실행할 수 없으므로 C:\Users\USER\Desktop\drf\venv\Scripts\Activate.ps1 파일을 로드할 수 없습니다. 자세한 내용은 about_Execution
    _Policies(https://go.microsoft.com/fwlink/?LinkID=135170)를 참조하십시오.
    + venv/Scripts/activate
    + ~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : 보안 오류: (:) [], PSSecurityException
        + FullyQualifiedErrorId : UnauthorizedAccess
    # 관리자 권한으로 실행
    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

 

2) Django, Django Rest Framework 설치

pip install django
pip install djangorestframework

 

2-1) requirements.txt 업데이트

https://softl.tistory.com/138?category=559456 

 

24. Django DRF requirements.txt 생성

팀 활동을 위해서 자신이 무엇을 설치했는지 공유해할 경우가 있다. 이때, pip freeze > requirements.txt로 파일을 생성해준다. pip freeze asgiref==3.5.2 backports.zoneinfo==0.2.1 Django==4.0.5 djangorestf..

softl.tistory.com

 

2-2) rest framework 설정 추가

# settings.py
REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': [ # 기본적인 view 접근 권한 지정
        'rest_framework.permissions.AllowAny'
    ],
    'DEFAULT_AUTHENTICATION_CLASSES': [ # session 혹은 token을 인증 할 클래스 설정
        'rest_framework.authentication.TokenAuthentication',
        'rest_framework.authentication.SessionAuthentication'
    ],
    'DEFAULT_PARSER_CLASSES': [ # request.data 속성에 액세스 할 때 사용되는 파서 지정
        'rest_framework.parsers.JSONParser',
        'rest_framework.parsers.FormParser',
        'rest_framework.parsers.MultiPartParser'
    ]
}

 

3) 프로젝트 폴더 설정

# 해당 폴더 안에서
django-admin startproject ProjectName .

# app 만들기
python manage.py startapp AppName

 

4) 자주 사용하는 설정

  • debug = True / False debug 모드 설정. static file 처리, allow host, 에러 페이지 등의 설정이 달라진다.
  • LANGUAGE_CODE = 'ko-kr' : 언어 설정
  • TIME_ZONE = 'Asia/Seoul' : Timezone 설정
  • DATABASES : DB 설정
  • INSTALLED_APPS : 사용할 앱 설정
  • 실행되는 SQL 쿼리 보기
# https://docs.djangoproject.com/en/1.11/topics/logging/
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
        }
    },
    'loggers': {
        'django.db.backends': {
            'handlers': ['console'],
            'level': 'DEBUG',
        },
    }
}
(0.000) 
            SELECT name, type FROM sqlite_master
            WHERE type in ('table', 'view') AND NOT name='sqlite_sequence'
            ORDER BY name; args=None; alias=default
(0.000) SELECT "django_migrations"."id", "django_migrations"."app", "django_migrations"."name", "django_migrations"."applied" FROM "django_migrations"; args=(); alias=default

위와 같이 (실행시간) DB에 사용된 코드 를 볼 수 있다.