코딩/Django 21

시리얼라이저에 대한 이해

DRF 장고 레스트 프레임워크에서 장고 어플리케이션은 API를 요청한 애플리케이션과 JSON 데이터를 주고받을 수 있어야 함 이를 위해서 DB인스턴스를 JSON 데이터를 시리얼라이즈 하거나, 반대로 JOSN 데이터를 DB 인스턴스로 디시리얼라이즈 할 수 있어야 한다. 이를 위해 DRF가 제공하는 것이 Serializer이며, (장고의 Form 클래스와 유사) 이를 상속하여, 특정 모델에 대응하는 시리얼라이즈 하거나, JSON 데이터를 DB 인스턴스로 디시리얼라이즈 할 수 있어야 함 시리얼 라이저에는 직렬화/ 역직렬화 되어야 하는 모델의 필드들이 정의된다. 대응하는 모델의 모든 필드 들을 정의 할 수있고, 일부 필드만 정의할 수도 있다. 여기에서 정의되는 필드의 값들은 시리얼라이즈시 JSON 데이터로 표현..

코딩/Django 2023.05.17

DRF를 이용한 팀프로젝트 진행

view.py 에서 목적: 가상의 호텔 운영 홈페이지, 예약과 리뷰남기기를 할 수있다. 회원가입도 내가 구현하고자 한 기능들 : 모든 방들의 정보를 불러옴 class RoomView(APIView): def get(self, request): # 모든 방들의 대한 정보를 불러옴 rooms = Rooms.objects.all() serializer = RoomSerializer(rooms, many=True) return Response((serializer.data), status=status.HTTP_200_OK) def post(self, request): # 방을 추가 serializer = RoomSerializer(data=request.data) if serializer.is_valid(): ..

코딩/Django 2023.05.09

프로젝트 기획

호텔 예약 사이트 관리자용 (묭/연) 방 등록 - 위치,서비스 제공 목록, 방 이미지, 설명 → manager/rooms/ 방 조회 - boolean → manager/rooms/ 방 삭제 - 예약한 사람이 있으면 X → manager/rooms/ 팀 팀명 : 비타민 B3 팀 소개 : 상큼한 팀 방 수정 → manager/rooms/ 예약자 명단 조회(이름, 전화번호, 방, 날짜) → manager/book/ 추가 기능 ( 제작 후반 검토 ) 룸서비스 예약 조회(최후로 미루죠!) 일반회원용 (옐/송/은) 숙소 조회 - 지역별/유형별 → users/ 숙소 예약&예약 취소 (옵션 선택 : 인원 수 추가, 날짜, 조식 포함, 지점) - 다른 사람이 동시간 같은방을 먼저 예약 했다면 예약할 수 없게 .. → u..

코딩/Django 2023.05.08

시리얼라이저 복습

목적 : ArticleDetailView 에서 댓글들의 정보를 보여주고 싶음 class ArticleDetailView(APIView): def get(self, request, article_id): article = get_object_or_404(Article, id=article_id) serializer = ArticleSerializer(article) return Response(serializer.data, status=status.HTTP_200_OK) 아티클의 시리얼라이저 class ArticleSerializer(serializers.ModelSerializer): user = serializers.SerializerMethodField() comment_set = CommentSer..

코딩/Django 2023.05.04

파일 입출력

파일 열기 r, w, a = 읽기, 쓰기, 추가 파일 읽기 read() readline() 한줄씩 읽기 readlines() 한줄씩 리스트로 파일 쓰기 파일 닫기 # 파일을 쓰기 모드로 엽니다. file = open("example.txt", "w") # 파일에 데이터를 작성합니다. file.write("Hello, world!\n") file.write("This is an example file.\n") file.write("Writing some lines.\n") # 파일을 닫습니다. file.close() # 파일을 읽기 모드로 열고 데이터를 읽는 예제입니다. file = open("example.txt", "r") # 파일 전체를 읽어옵니다. contents = file.read() print..

코딩/Django 2023.05.03

장고 과제 해설

내 장고 과제 나의 리뷰 커스텀 유저 만들기 장고 공식문서 읽기 choice 를 이용하여 필드구현 세션에서의 로그아웃과 jwt 토근기반 방식에서의 로그아웃 의 차이 비유) 영화관에 입장 , 입장할 자격을 인증, 보통 티켓으로 함 세션 로그인 : 티켓에 주문번호가 적혀있음 > db에서 주문번호 확인 jwt 토큰 : 구매자 , 구매일자, 만료일자 , 티켓 서명 >만료여부, 서명유효 확인 auto_now_add = # 최초 생성 될때 시간 auto_now = 데이터가 세이브 될 때마다 갱신 장고 Meta 클래스는 문법적으로 크게 의미가 있지는 않고 장고의 약속\ 세이브 함수를 실행해야 시리얼라이저의 create 메소드가 들어간다. 수정 패치 풋 패치는 일부데이터를 수정할 때 씀 # paych { "name":..

코딩/Django 2023.05.02

on_delete 장고의 기능에 대하여

on_delete 옵션은 Django에서 모델을 구현할 때 데이터베이스 상에서 참조무결성 (관계 데이터베이스 관계 모델에서 2개의 관련 있던 관계 변수 간의 일관성)을 유지하여 ForeignKeyField가 바라보는 값이 요소를 처리하는 방법을 지정해준다. 1. CASCADE: ForeignKeyField를 포함하는 모델 인스턴스(row)도 같이 삭제한다. 2. PROTECT: 해당 요소가 같이 삭제되지 않도록 ProtectedError를 발생시킴 3. SET_NULL: ForeignKeyField 값을 NULL로 바꾼다. null = True 일 때만 사용가능 4. SET_DEFAULT: ForeignKeyField 값을 default값으로 변경한다. default값이 있을 때만 사용할 수 있다. 5...

코딩/Django 2023.05.01

04-25 til 장고와 MVT패턴

나중에 공부해야 하는 것들 xss csrf 목적 1. 장고란 무엇? mvt패턴은 무엇? 2. 장고에 대한 고민을 해본 적이 있는가?, 장고는 왜 쓰는가 3. 사용하면서 들었던 의문점들 장고는 무엇인가 완벽주의자 with deadline 를 위한 웹프레임워크 Fully loaded 웹개발에 필요한 도구들을 다 가지고 있다. 개발자와 코더의 갈림길 , 구현에 치중 개발자는 추가로 궁굼함 장고는 뉴스피드관리용으로 개발이됨 그 이후로 발전이 됨 Sending Mail ORM Form Django Admin Admin(Back Office) 판매 제품 재고 변경 회원계정 복구, 임의탈퇴 상황 금일 매출 또는 오늘 몇명 회원가입 채용플랫폼 내 Django 검색 /어드민 /Back Office Django Custo..

코딩/Django 2023.04.25

로그인의 다양한 방식들

토큰 vs 쿠키 방식 vs OAuth방식 무엇이 최선인가? - 아직 결론 안남 로컬 스토리지 쿠키는 모든 요청이 실려서 보내짐 회원정보같은거 매번 보내줌 용량 4096b (로컬스토리지는 5메가) 쿠키는 만료가 있지만 로컬스토리지는 없다. 쿠키를 설정하는 것이 조금 어렵다. 로컬스토리지는 쉽다. JWT는 어디 저장해야 하나? 로컬스토리지 vs 쿠키 JSON WEB TOKEN drf-jwt 개발지원 끊김 simple JWT 사용하겠다. 토큰 구성 헤더: 알고리즘, 타입 페이로드: 토큰타입, 만료날짜, 유니크아이디, 유저 아이디 verify signature : 인감부분 invalid signiture SECRETKEY 숨겨야 함 엑세스토큰을 이용해서 접근하고 엑세스토큰이 만료되면 리프레쉬 토큰으로 재발급 커..

코딩/Django 2023.04.24