전체 글 72

Class Based View

Class Based View 특징클래스형 뷰에서는 특정 Http Method에 대한 처리를 함수로 분리할 수 있습니다.→ GET요청에 대한 처리는 get()에서, POST 요청에 대한 처리는 post()에서 정의가 가능해요!클래스를 사용하기 때문에 코드의 재사용성과 유지보수성이 향상됩니다.기본 APIView외에도 여러 편의를 제공하는 다양한 내장 CBV가 존재합니다.Class Based View 종류APIView - DRF CBV의 베이스 클래스GenericAPIView일반적인 API 작성을 위한 기능이 포함된 클래스보통 CRUD 기능이 대부분인 상황을 위해 여러가지 기능이 미리 내장되어 있습니다.Mixin재사용 가능한 여러가지 기능을 담고있느 클래스말그대로 여러 클래스를 섞어서 사용하기 위한 클래스L..

RESTful API

RESTful API어플리케이션간 소통하는 방법에 REST적인 표현을 더한 것. ⇒ REST 원리를 따라 설계한 APIRESTful API로 작성하면 결과를 보지 않고 요청 형식만 보더라도 추론이 가능합니다.→ 새로운 article 생성→ article 목록 조회→ 1번 article 조회→ 1번 article 삭제DELETE /articles/1/GET /articles/1GET /articles/POST /articles/ 핵심 규칙자원 : URI로 표현행위 : HTTP Method로 표현표현자원과 행위를 통해 표현되는 결과물로 일반적으로 JSON 형식을 사용URI는 동사가 아닌 명사의 나열로 사용→ POST /articles/ (O)→ POST /articles/create/ (X)따르지 않더라도 ..

카테고리 없음 2024.04.29

URL의 구조

URI의 구조https://www.someone.dev:80/path/to/resource/?key=value#docs https://Scheme(Protocol)브라우저가 사용하는 프로토콜입니다.http, https, ftp, file, …www.someone.devHost(Domain name)요청을 처리하는 웹 서버입니다.IP 주소를 바로 사용할 수 있지만 도메인 이름을 받아서 사용하는 것이 일반적입니다.:80Port리소스에 접근할 때 사용되는 일종의 문(게이트)입니다.HTTP: 80 / HTTPS: 443이 표준 포트입니다./path/to/resource/Path웹 서버에서의 리소스 경로입니다.웹 초기에는 실제 물리적인 위치를 나타냈으나 현재는 추상화된 형태를 표현합니다.?key=valueQuer..

카테고리 없음 2024.04.25

HTTP 그리고 HTTP Status Code 종류

Hyper Text Transfer Protocol⇒ Web에서 이루어지는 **데이터 교환의 기초(**약속)입니다.요청(Request)클라이언트 → 서버로 전송되는 메세지응답(Response)서버 → 클라이언트로 전송되는 메세지특성Stateless (무상태)→ 모든 응답과 요청은 독립적입니다.→ 서버가 클라이언트의 상태를 보존하지 않습니다.Connectless (비연결성)→ 연결을 유지하지 않으므로 서버 자원을 효율적으로 사용 가능합니다.→ 이후 HTTP1.1이 등장하면서 개선되었습니다.→ 요청 받고 응답을 주고나면 연결을 종료합니다.HTTP Message요청(Request)클라이언트가 서버로 전달해서 서버의 어떤 행동(action)이 일어나게 하는 것을 의미합니다.응답(Response)요청에 대한 서버..

카테고리 없음 2024.04.25

[SQL 데이터에서 예상하지 못한 값이 나왔을 때 (이상한 값, 값이 없음 등) 5/5]

분명 있어야 하는데, 데이터가 없어요! 이럴 때 처리할 수 있는 방법이 있을까요? 보통 이럴때는 테이블에 잘못된 값이 들어있을 수 있습니다. [방법1] 없는 값을 제외해주기 Mysql 에서는 사용할 수 없는 값일 때 해당 값을 연산에서 제외해줍니다. → 0으로 간주 즉 평균 rating 을 구하는 쿼리를 아래와 같이 작성했을 때 실제 연산에 사용되는 데이터는 다음과 같습니다. select restaurant_name, avg(rating) average_of_rating, avg(if(rating'Not given', rating, null)) average_of_rating2 from food_orders group by 1 명확하게 연산을 지정해주기 위해 null 문법을 이용 select a.orde..

[SQL] Subquery 문 안을 수정해서, 음식 주문시간이 25분보다 초과한 시간을 가져오기 4/5

1. 문자변경과 조건문 👉 문자 변경 REPLACE : 지정한 문자를 다른 문자로 변경 SUBSTRING : 특정 문자만 추출 CONCAT : 여러 문자를 합하여 포맷팅 👉 조건문 IF : if(조건, 조건을 충족할 때, 조건을 충족하지 못할 때) CASE WHEN END : case when 조건1 then 값(수식)1 when 조건2 then 값(수식)2 else 값(수식)3 end 2. Subquery 문의 기본 구조 select column1, special_column from ( /* subquery */ select column1, column2 special_column from table1 ) a select column1, column2 from table1 where column1 =..

Django MTV 사용하기

📢 데이터베이스에서 모든 아티클을 조회해서 /articles/에서 볼 수 있도록 해봅시다! view에서 model에 접근해 모든 아티클 가져오기 view에서 가져온 아티클을 template으로 넘기기 from .models import Article ... def articles(request): articles = Article.objects.all() context = { "articles": articles, } return render(request, "articles.html", context) ... 3. template에서 넘어온 context 보여주기 {% extends "base.html" %} {% block content %} Articles {% for article in artic..

완전탐색기 코딩 (데이터 다 체크해서 원하는 최대값 찾기)

max_number =0 #a 안에 한줄씩 들어간다 a= input() 최대로 큰 점수 찾고 그어느 행, 열에 있는지 찾기 max_number = 0 row = 1 column = #1-9순회할거라 마지막에 10으로 해줌 그러면 [1,2,3,4,5,6,7,8,9] 들어올 것 for r in range(1,10): input_list = list(map(int, input(), split) #최대값이 어디 열에 있는지 알려줘 그 안을 탐색할거야 #1을 줘서 0부터 세지 않게 enumerate 1부터 카운팅 해라 처음부터 선언하는 것 for c, num in enumerate(input_list,1): if num > max_number: max_number = num row = r column = c pr..