[DRF]-시크릿 키(SECRET_KEY) 분리 설정

yuKeon·2023년 1월 16일
0

DRF

목록 보기
1/7
post-thumbnail

1. secret.json 생성

backend
|
|
| ㅡㅡ backend
|       |
|       |ㅡㅡ __init__.py
|       |ㅡㅡ asgi.py
|       |ㅡㅡ settings.py
|       |ㅡㅡ urls.py
|       |____ wsgi.py
|
|
| ㅡㅡ user
|       |
|       |ㅡㅡㅡㅡㅡ migrations
|       |               |
|       |               |___ __init__.py
|       |ㅡㅡ __init__.py
|       |ㅡㅡ admin.py
|       |ㅡㅡ apps.py
|       |ㅡㅡ models.py
|       |ㅡㅡ tests.py
|       |____ views.py
|
|     ...
|
|
| ㅡㅡㅡ db.sqlite3
| ㅡㅡㅡ secrets.json
|______ manage.py

2. secrets.json 내용

  • DB의 id, password 입력 가능
  • 이번 프로젝트에서는 .env 파일에 DB id와 password를 저장했기 때문에 OCR 관련 데이터를 넣었다.
{
  "API_URL" : "url",
  "SECRET_KEY":"key"
}

3. 사용 방법

  • settings.py
def get_secret(setting):
    try:
        return secrets[setting]
    except KeyError:
        error_msg = "Set the {} environment variable".format(setting)
        raise ImproperlyConfigured(error_msg)

OCR_SECRET_KEY = get_secret("SECRET_KEY")
OCR_API_URL = get_secret("API_URL")

  • ocr/views.py
@api_view(['POST'])
def ocr_receipt(request):
    api_url = OCR_API_URL
    secret_key = OCR_SECRET_KEY
    # img = save_image(request.FILES['file'])
    image_file = save_image(request.FILES['files'])
...

0개의 댓글