728x90
반응형

Dev. 45

[Django] Django에서 fixture 사용

Fixture 일반적으로 데이터베이스의 초기 데이터나 테스트 데이터를 쉽게 생성하고 로드할 수있게 해주는 도구이다. 데이터베이스에서 내보낸 JSON 또는 XML 형식의 데이터를 이용하여, 다른 데이터베이스에 데이터를 이전하거나, 초기 데이터를 적용하는 데 사용할 수 있다. Dump & Load fixture는 dumpdata와 loaddata 관리 명령을 사용하여 작업할 수 있다. dumpdata 명령은 현재 데이터베이스에서 데이터를 추출하고, loaddata 명령은 이러한 데이터를 사용하여 데이터베이스를 채워준다. dumpdata 현재 데이터베이스에 있는 데이터들을 json형식으로 dump 떠 JSON 파일로 추출할 수 있다. $ python manage.py dumpdata APP_NAME.MODEL..

Dev./Django. 2023.03.31

[Django] JSON WebToken - Simple JWT

JSON WebToken 유저를 인증하고 식별하고 JSON 형식의 데이터를 안전하게 전송하기 위한 토큰 기반의 인증 시스템이다. 특징 세션과 다르게 서버가 아닌 클라이언트에 저장되어 메모리, 스토리지 등 세션을 관리했던 서버의 부담이 줄어든다. 토큰 자체에 데이터가 담겨있어 판별가능하다. 상태를 유지하지 않아 Stateless하다. 인증 방식 유저가 로그인 요청을 한다. 서버 단에서 유저(클라이언트)에게 유일한 토큰을 발급한다. 클라이언트는 서버 측에서 전달받은 토큰을 쿠키나 스토리지에 저장해두고, 서버에 요청할 때마다 해당 토큰을 HTTP 헤더에 포함시켜 전달한다. 서버는 전달받은 토큰을 검증하고 요청에 응답한다 토큰에 요청한 사람의 정보가 담겨있으므로 DB조회 없이 유저 식별이 가능하다. JWT 구조..

Dev./Django. 2023.03.30

[Django] Django Middleware

Middleware https://docs.djangoproject.com/en/4.1/topics/http/middleware/ Django의 Request/ Response 처리에 연결되는 프레임 워크로 입출력을 특정한 app단이 아니라 전역적으로 변경하기 위한 가볍고 낮은 수준의 플러그인 시스템이다. Http Request가 들어오면 미들웨어를 거쳐 url에 매핑된 view로 보내고 Response역시 미들웨어를 거친다. Django settings.py 미들웨어간의 유기적인 관계가 설정되어 있기 때문에 등록하는 순서가 중요하다. HTTP Request는 위에서부터 순차적으로 미들웨어가 적용되며 Response를 반환할 때는 아래에서 위로 미들웨어가 적용된다. MIDDLEWARE = [ "djang..

Dev./Django. 2023.03.16

[Django] DRF로 pagination 적용하기 -PageNumberPagination

페이지네이션(Pagination) 구글에 DRF pagination으로 검색을 하면 많은 결과가 한번에 보여지는 것이 아니라 다음과 같이 페이지별로 보여진다. 결과가 약 만개라고 가정했을 때 매번 전체 결과를 가져오면 속도가 굉장히 느리고 유저입장에서는 불편할 것이다. 따라서 전체 데이터에서 지정된 값 만큼 데이터를 나눠서 가져오는 방식을 페이지네이션 이라고 한다. http://127.0.0.1:8000/user/?page=2 DRF에서는 PageNumberPagination, LimitOffsetPagination, CursorPagination 와 같은 페이지네이션 기능을 제공하고 있다. 이 글에서는 실제 사용을 한 PageNumberPagination로 페이지네이션을 적용하는 것에대해서만 작성하려고..

Dev./Django. 2023.03.16

[Error] TypeError: change_view() missing 1 required positional argument: 'object_id'

TypeError: change_view() missing 1 required positional argument: 'object_id' Simplt JWT를 사용해서 미들웨어단에서 처리되도록 로그인 로직을 작성했다. 잘 돌아가는 것을 확인 한 후 다음 이슈를 해결하기위해 어드민 페이지에 접속해 아무 데이터나 클릭한 순간 발생한 에러이다. GET /admin/users/user/1/change/ 해당 url을 보면 어드민 유저페이지의 1번 유저를 수정할 때 발생했다. 유저아이디 1번의 파라미터 값을 읽지 못한것이다. 에러내용을 쭉 보면 내가 작성했던 미들웨어 훅(process_view)에서 발생 하는 것을 알 수 있었다. Middleware Hook 클래스 형식으로 미들웨어를 정의할 때 HTTP requ..

Dev./Error. 2023.03.16
728x90
반응형