본문 바로가기

Django

(13)
DRF 프로젝트 우분투 서버 git push로 배포하기 작동 방법 개발자의 맥에서 서버로 Push > 깃훅을 이용해서 마이그레이션과 uwsgi, nginx 재시작 방법 1. requirements.txt 생성 프로젝트 폴더로 가서 아래 명령어를 실행 pip3 freeze >> requirements.txt 2. ALLOW_HOST에 서버 주소 추가 서버의 주소를 설정파일 ALLOW_HOST에 추가 3. 서버에서 사용할 Static 파일 위치 설정 설정 파일에 추가 STATIC_ROOT = os.path.join(BASE_DIR, ".static") 4. 필요한 라이브러리 설치 sudo apt-get update sudo apt-get dist-upgrade sudo apt-get install python3-pip 5. 프로젝트 폴더 생성 mkdir app ..
DRF 응답 포멧 커스텀 하기(JSONRenderer) API 서버를 사용할때 응답의 포멧이 다르다면 프론트에서 처리하기가 매우 화가 날것이다. 그렇기 때문에 응답(response) 포멧 설정이 필수적이다. { "code": 200, "msg": "OK", "data": { "user": { "id": 2, "email": "test@test.com", "password": null, "name": "test", "created_at": "2023-02-21T12:35:30.745817+09:00" }, "message": "login success", "token": { "access": "access token", "refresh": "refresh token" } } } 이런 식으로?? 만일 모든 요청에 대해서 응답 포멧을 일일이 설정해 줘야 한다면 매..
DRF(Django REST framework)로 API 서비스 만들기-3 이제 유저 모델과 jwt 인증을 연결해줄 순서이다. jwt 란? https://mangkyu.tistory.com/56 1. 라이브러리 설치 콘솔에서 해당 명령어를 입력한다. pip install djangorestframework-simplejwt 2. 설정 파일 수정 config/settings.py ... from datetime import timedelta … INSTALLED_APPS = [ … 'rest_framework', 'rest_framework_simplejwt', ] REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework_simplejwt.authentication.JWTAuthentication', ) } S..
DRF(Django REST framework)로 API 서비스 만들기-2 기본 설정을 했으면 이제 유저 모델을 만들어야 한다 1. User 모델 커스컴 보통 서비스를 개발하게 되면 서비스마다 조금씩 다른 유저 모델을 생성한다. 장고에서 유저 모델에 컬럼을 추가하거나 수정하기 위해서는 유저 모델을 만들어서 커스텀 해줘야 하는 번거로움이 있다. a) 먼저 유저 모델 생성을 위해 앱을 만든다 python manage.py startapp account b) config/settgins.py에 앱 추가 ... INSTALLED_APPS = [ ... 'account', ] ... c) 커스텀할 유저 모델 생성 account/models.py from django.db import models from django.contrib.auth.models import (BaseUserMan..
DRF(Django REST framework)로 API 서비스 만들기-1 지금부터 DRF로 실제 서비스를 하기 위한 API 서버를 만들 것이다. 파이썬으로 웹 서비스를 개발하는 대표적인 방법은 Django를 이용하여 일반적인 웹 서비스를 만드는 방법과 DRF를 이용하여 API 서버를 만드는 방법이 있다. DRF는 Django rest framework의 약자로, 파이썬을 기반으로 하는 웹 개발 라이브러리이다. 쉽게 이야기해서 파이썬 기반으로 API 서비스를 개발할때 사용한다. 1. 프로젝트 구성하기 a) 먼저 프로젝트 폴더를 생성 - 윈도우 터미널이 무엇인가? https://rb.gy/p1r88q - 맥 터미널이란 무엇인가? https://rb.gy/6jcltu mkdir my-api-project b) .gitignore 생성 - 깃허브가 무엇인가? https://yanac..
요청 도메인, 아이피, 정보 얻기 서버로 들어오는 요청의 도메인이나 아이피, 정보등이 필요할 때가 있다. API 서버를 만드는데 요청 도메인으로 인증을 할때라든지... 1. request 객체 사용하기 유저로부터 서버로 요청이 들어오면 request 객체를 받을 수 있다. 해당 객체에는 여러가지 요청에 대한 정보가 들어 있다. 아래의 메서드를 이용하면 여러 값을 얻을 수 있다. reqeust.path /main request.get_host() naver.com request.get_full_path() /main?order=fast reqeust.secure() 요청이 https 인가 아니냐로 True False 이 외에도 request.META를 입력하면 많은 정보를 얻을 수 있다. 아래 서비스를 이용하면 결과값을 쉽게 볼 수 있다...
키 파일 분리하기 AWS를 쓰다가 천만원이 나왔다는 이야기를 들어본 적이 있는가? 요즘 대부분의 서비스들은 유료 서비스를 API 키 인증으로 제공하고 있다. 근데 이런 유료 서비스를 사용하는데 들어가는 키를 분실한다면? 키를 훔처간 사람이 내 키를 이용해서 내 돈을 마구마구 쓸 것이다. 그렇기 때문에 보통 프로젝트를 만들면 키파일을 따로 분리하고 Github에 올라가지 않도록 한다. 1. 키파일 생성 먼저 적당한 위치에 파일을 생성한다. project/config/key.py 2. 내용 생성하기 여기서는 디비 접속 부분을 키 파일로 만들어 보겠다 key.py APP_DB_DEV = { "default": { "ENGINE": "django.db.backends.mysql", "NAME": "dev_db", "USER": ..
로그 남기기 우리가 일반적으로 로컬에서 개발을 하면 오류를 콘솔에서 확인할 수 있지만, 테스트 서버나 프로덕션 서버에서 wsgi를 사용하면 로그를 콘솔처럼 확인할 수가 없다. 그렇기 때문에 로그파일을 남겨서 확인하는 방법을 사용해야 한다. 1. settings.py에 로그 설정 부분 추가 가장 먼저 셋팅 파일을 열어서 아래 내용을 추가한다. . . . LOGGING = { "version": 1, "disable_existing_loggers": False, "filters": { "require_debug_false": { "()": "django.utils.log.RequireDebugFalse", }, "require_debug_true": { "()": "django.utils.log.RequireDebugT..