-
```""" FastApi를 써야하는 이유?
빠른 속도 및 범용적으로 사용이 가능,비동기 사용 """
""" 개발 순서
1.입출력 스펙 정하기
2.기능 구현
3.데스트
4.입출력 값 검증
1~4까지 pydantic 모듈 사용
"""
""" 5. 작성한 api는 자동으로 생성되는 api문서를 통해 손쉽게 테스트 가능
5번 과정은 python module을 활용하여 구현 """
Simple fastapi test
from fastapi import FastAPI
app=FastAPI()
@app.get("/") # GET 메소드로 가장 루트 url로 접속할 경우 async def root(): # root() 함수를 실행하고 return {"message":"Hi FastApi"} # Hello Fast란 메시지 반환합니다.
""" Tip 및 의미 이해
현업에서 간단하게 구현하는 이유 > 바로 서버로 보내는 것이 가능하고 빠른 일처리 가능
실행: uvicorn (현재 작성한 python 파일 이름):app --reload
async는 비동기(asynchronous)를 의미하는 키워드로, 다양한 프로그래밍 언어에서 사용됩니다.
비동기란 작업이 완료되지 않아도 다음 코드를 실행하는 방식을 말합니다.
"""
test 2
@app.get("/check") ######## 1 async def check(): return {"message":"check"}
""" 테스트 결과 > 1번의 경로와 동일한 경로가 존재한다면 해당 함수는 실행되지 않는다 함수는 이 메시지의 이름을 부여한 느낌이다. Django는 crud가 강한 편이다.
"""마크다운과 관련하여 조금 더 다듬을 부분이 있을 거 같습니다. 되도록 매일 공부하며 다듬어보도록 하겠습니다.
-
출처:Programmers Mysql Lv1 조건에 부합하는 중고거래 댓글 조회하기
정답 코드
```
SELECT TITLE,USED_GOODS_BOARD.BOARD_ID,REPLY_ID,USED_GOODS_REPLY.WRITER_ID,USED_GOODS_REPLY.CONTENTS,DATE_FORMAT(USED_GOODS_REPLY.CREATED_DATE, '%Y-%m-%d') CREATED_DATEFROM USED_GOODS_BOARD Inner join USED_GOODS_REPLY On USED_GOODS_BOARD.BOARD_ID=USED_GOODS_REPLY.BOARD_ID
WHERE USED_GOODS_BOARD.CREATED_DATE LIKE '2022-10%'
order by USED_GOODS_REPLY.CREATED_DATE, TITLE
```해설
SELECT TITLE,USED_GOODS_BOARD.BOARD_ID,REPLY_ID,USED_GOODS_REPLY.WRITER_ID,USED_GOODS_REPLY.CONTENTS,DATE_FORMAT(USED_GOODS_REPLY.CREATED_DATE, '%Y-%m-%d') CREATED_DATE -(1)
FROM USED_GOODS_BOARD Inner join USED_GOODS_REPLY On USED_GOODS_BOARD.BOARD_ID=USED_GOODS_REPLY.BOARD_ID -(2)
WHERE USED_GOODS_BOARD.CREATED_DATE LIKE '2022-10%' -(3)
Order by USED_GOODS_REPLY.CREATED_DATE, TITLE -(4)
1.원하는 정보:Select 필요한 정보: 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일로 되어있기 때문에 원하는 조건에 맞춰서 select 문을 작성해준다
하지만 여기에서 이 그대로 하나만 작성을 하게 된다면 하나의 오류를 마주 할 수 있게된다.
Error: " " in field list is ambiguous
그렇기에 정확히 어느 테이블의 무엇을 불러올 지 정확히 명시를 해줘야한다.
ex)USED_GOODS_BOARD.BOARD_ID2.두 가지 테이블의 정보를 활용하는 조건에 따라 조인을 생각할 수 있습니다. ( 단, 해당 테이블에서는 필요한 내용이 양쪽 테이블에 모두 있기 때문에 내부 조인을 활용하겠습니다.)
해당 문제에서는 각 작성 게시글은 goods_board의 경우 하나의 게시글 아이디에 하나의 글이기에 board_id가 기본키라 할 수 있습니다. 하지만 반대쪽은 하나의 게시글에 여러개의 댓글이 가능하기에 goods에 comment 테이블을 조인을 하는게 좋습니다.
3.조건에 따라 2022년 10월에 해당하는 작성글을 찾기에 like 2022%으로 조건을 제한할 수 있습니다.
특정 날짜를 여러 개를 할 때는 in 을 활용하는 것이 더 좋을 수 있습니다.
- 댓글 작성일 > 작성 제목 순으로 나열하는 것이 조건으로 제시되었기 USED_GOODS_REPLY.CREATED_DATE, TITLE으로 하였습니다.
나열 되는 순서에 따라 작성이 되어야 1번째 순서로 나열된 후 해당 조건의 동일한 조건들에 한하여 2번째 제시된 조건으로 나열이 됩니다.
- 댓글 작성일 > 작성 제목 순으로 나열하는 것이 조건으로 제시되었기 USED_GOODS_REPLY.CREATED_DATE, TITLE으로 하였습니다.