- rest_api
- Status Code
정참조, 역참조, related_name- Django ORM과 SQL의 관계
HTTP Method
: 해당 요청이 의도한 액션을 정의하는 부분. 주로 GET, POST, DELETERequest Target
: 해당 request가 전송되는 url 또는 uri라고도 표현REST_API
: url을 만드는 아키텍쳐 방식 중에 하나. 이 REST_API에 맞춰서 url을 만들게 될 것HTTP version
: 주로 1.1 버전 사용GET /login HTTP/1.1
: GET 메소드로 login이라는 요청 타겟에 HTTP 1.1 버전으로 요청을 보내겠다메타데이터(추가 정보)
를 담고 있는 부분HOST
: 요청을 보내는 타겟의 주소. 즉 요청을 보내는 웹사이트의 기본 주소User-Agent
: 요청을 보내는 클라이언트에 대한 정보. 어떤 브라우저에서 보내는지Content-Type
: 해당 요청이 보내는 메세지 body의 타입. 이거에 따라서 body에 담기는 메세지 타입이 달라짐. 2차프로젝트때는 파일 데이터도 다루게 될 것application/json
이 아닌 Multipart/form-data
타입을 쓰게 될 것Content-Length
: body 내용의 길이Authoraization
: 회원의 인증/인가를 처리하기 위해 로그인 토큰을 담는 KEYPOST
다HTTP Version
, Status Code
, Status Text
Status Code
도 잘 알아두자!wsgi.py
: 이 파일을 통해 프로트와 서버 통신이 이루어지는 것asgi.py
: 비동기 통신을 할 때는 이 모듈을 통해 통신함my_settings.py
: 환경변수로 관리되는 파일이기 때문에 이 안의 SECRET_KEY
같은 것을 여기서 직접 import 해오면 안된다 from my_settings import SECRET_KEY
를 바꾸자from project.settings import SECRET_KEY
from django.conf.settings import SECRET_KEY
이 방법이 공식문서에서 추천하고 있는 방법기존의 DATABASES는 my_settings.py에 저장되어서 settings.py에서 변수를 import해오는 식으로 썼지만 다른 방법!
os.environ
이라는 딕셔너리를 통해서 os에 선언되어 있는 모든 환경변수를 가져올 수 있다vi. zshrc
으로 들어가서 export DB_NAME = "westagram"
이런식으로 환경변수를 등록한다0001_initial.py
B는 0002_initial.py
가 있으면 충돌 일어남Router
: 라우터는 패킷의 위치를 추출하여, 그 위치에 대한 최적의 경로를 지정하며, 이 경로를 따라 데이터 패킷을 다음 장치로 전향시키는 장치. 라우터(Router)는 이름 그대로 네트워크와 네트워크 간의 경로(Route)를 설정하고 가장 빠른 길로 트래픽을 이끌어주는 네트워크 장비urlpatterns
에서 모든 app들을 라우팅해줘야 한다path("user", include("user.urls"))
path("/signup", SignUpview.as_view())
signup이 타겟built-in 모듈
외부모듈
- pip install해서 설치한 모듈커스텀모듈
- 내가 직접 만든 모듈user = User.objects.get(email=data["email"]
매칭되는 데이터가 없을 시 get함수는 이 user에다가 false를 반환해주는 것이 아니라 그냥 에러를 raise 해버림. 그래서 if, else를 쓸 수 없는 것except Exception as e
: 이 에러 처리방법은 절.대 쓰지 말자created_at
, updated_at
)class
명 : 대문자로 시작, 단수table
명 : 복수null=True
, unique=True
(이 속성을 두 번 이상 주기 위해서는 multiple unique 속성도 줘야함)password
컬럼의 max_length
속성은 암호화될 것을 고려해서 넉넉하게 주자