본문 바로가기

분류 전체보기

(79)
[Django] DRF Project - 3 오늘은 회원 기능을 구현할 차례이다.회원기능에 있어야 하는 필수 조건은 다음과 같다.회원가입Endpoint: /api/accountsMethod: POST조건: username, 비밀번호, 이메일, 이름, 닉네임, 생일 필수 입력하며 성별, 자기소개 생략 가능검증: username과 이메일은 유일해야 하며, 이메일 중복 검증(선택 기능).구현: 데이터 검증 후 저장.로그인Endpoint: /api/accounts/loginMethod: POST조건: 사용자명과 비밀번호 입력 필요.검증: 사용자명과 비밀번호가 데이터베이스의 기록과 일치해야 함.구현: 성공적인 로그인 시 토큰을 발급하고, 실패 시 적절한 에러 메시지를 반환.프로필 조회Endpoint: /api/accounts/Method: GET조건: 로그..
[Django] DRF Project - 2 오늘은 먼저 상품 관련 기능의 CRUD를 구현해보려고 한다. CRUD의 구현 조건은 다음과 같다.상품 등록Endpoint: /api/productsMethod: POST조건: 로그인 상태, 제목과 내용, 상품 이미지 입력 필요.구현: 새 게시글 생성 및 데이터베이스 저장.상품 목록 조회Endpoint: /api/productsMethod: GET조건: 로그인 상태 불필요.구현: 모든 상품 목록 페이지네이션으로 반환.상품 수정Endpoint: /api/products/Method: PUT조건: 로그인 상태, 수정 권한 있는 사용자(게시글 작성자)만 가능.검증: 요청자가 게시글의 작성자와 일치하는지 확인.구현: 입력된 정보로 기존 상품 정보를 업데이트.상품 삭제Endpoint: /api/products/Me..
[Django] DRF Project - 1 백엔드 트랙을 진행하고 있는 만큼 프론트가 아닌 백에 집중해서 DRF를 숙달하려고 한다.팀 프로젝트로 진행했던 spartamarket 프로젝트를 프론트를 신경쓰지 않고 DRF를 써서 구현하는게 목표이다. 1. Github를 사용해서 원격 저장소 등록먼저 프로젝트를 시작하기에 앞서 먼저 repository를 만든다.원래는 기본적인 설정을 끝내고 git init 명령어를 사용하여 형상관리를 시작한 뒤에repository를 연결하는 방법을 사용했지만, git clone으로 바로 시작하는 좋은 방법을 배워왔다.이 방법의 장점은 remote를 사용하여 원격 저장소를 등록할 필요 없이 바로 형상관리를 시작할 수 있다는 점이다.주소를 복사해주고 git clone을 이용해서 프로젝트를 시작한다. 새로운 프로젝트를 시작..
Django 기초 주차 돌아보기 Django 기초 주차가 끝나고 내용에 대한 이해도를 보기 위해서 테스트를 진행했다.객관식Django 프로젝트에서 다양한 관리 명령을 실행할 수 있게 하는 파일은 무엇인가요?D) manage.py다음 중 Django에서 제공하는 기본적인 데이터베이스는 무엇인가요?C) SQLiteDjango의 QuerySet 메서드 중 데이터베이스에서 특정 조건에 맞는 모든 레코드를 반환하는 메서드는 무엇인가요?A) filter()Django 템플릿 시스템에서 변수의 값을 출력할 때 사용하는 문법은 무엇인가요?A) {{ 변수 }}웹 어플리케이션에서 쿠키(Cookie)의 주요 목적은 무엇인가요?B) 사용자의 브라우저에 데이터를 저장하여 다음 방문시 사용하기 위해Django에서 특정URL에 대한 요청을 처리할 뷰(View)와..
[Django] Token Auth with JWT JWT(JSON Web Token) 쿠키 (Cookie) 웹 브라우저와 요청과 응답을 주고받을때 사용하는 데이터 조각이다.도메인에 제한적(예시: naver.com에서 받은 쿠키는 naver.com에만 줄 수 있다)이다.쿠키는 무제한이 아니며 유효기간이 정해져 있다.(유효기간이 지나면 자동으로 만료)Auth에만 사용되는 것이 아니라 다양한 방식으로 활용된다.(대표적으로 광고시장)  세션 (Session)stateless한 HTTP 특징을 보완하기 위한 방법으로 서버에서 세션 DB를 만들어놓고 유저 정보를 기억해 세션 ID라고 하는 난수 값의 ID를 만들어서 쿠키에 담아서 클라이언트에 준다. 그렇게 클라이언트는 이제 세션 ID가 담긴 쿠키를 도메인에 줌으로써 유저정보를 기억하게 한다. 그래서 JWT란?Coo..
[Django] 심화 과정에 들어가기 전 개념 지금까지 배운 DjangoWeb App을 빠르게 개발하기 위한 고수준의 웹 프레임워크로써의 Django로 Web의 전체 기능이 모두 들어있는 Web Application(요청에 대해서 html 파일(웹 페이지)을 응답하는)을 제작했다.MTV를 활용한 Web으로 데이터 모델링, URL 라우팅, 템플릿 시스템, 관리자 기능, 세션, 보안 등을 다룰 수 있었다. 이제부터 배울 Django보여지는 부분 처리 X, 오직 로직에만 집중하는 형태 => 요청을 하게되면 처리한 결과 데이터를 준다.Django REST Framework (DRF)를 이용하는 방법을 배울 것이다.※ DRF == 흔히 말하는 RESTful API를 Django로 구축하기 위한 확장 프레임워크  RESTful API CLI(Command Li..
[Django] URL Namespace URL Namespace 서로 다른 앱에서 똑같은 url이 있다면 어떻게 될까? ex) articles/urls.py에 'hello/' 와  users/urls.py의 'hello/'Django는 서로 다른 앱에서 동일한 URL Name을 사용하는 경우, 고유하게 구분할 수 있도록 namespace를 지원한다.from django.urls import pathfrom . import viewsapp_name = "articles"urlpatterns = [ ... path("hello/", views.hello, name="hello"), ...]여기서 보면 app_name이라는 변수가 추가되었는데 url에 이름공간을 만들어주고 나면, namespace:url_name 형태로 사용한다.red..
[Django] Django form Django Form Class 회원가입이나 게시물을 등록할 때, 입력 칸에 어떤 형식으로 넣어야 하는지 명시해 놓지만유저들이 어떤 마음인지는 잘 모르지만(필자는 보통 실수) 꼭 다른 형식으로 입력하는 유저들이 있다.그렇기 때문에, 유저가 입력하는 데이터는 반드시 유효성 검사가 필요하다.하지만 그러면 form도 작성해야지, view도 작성해야지, 유효성 검사도 해야지 등등 필요한 일도 많아지고그 과정에서 중복되는 코드들도 많이 생길것이다.이 때 django는 일부 반복되는 작업과 코드를 줄일 수 있는 django form을 제공한다.물론 직접 구현한 Form + View로직을 사용해도 상관없지만 어떻게 쓰는지는 알아두도록 하자.  Form 선언 # app/forms.pyfrom django import ..