1. 플라스크란?
ㅇ 플라스크는 Python의 마이크로 웹 프레임워크이다. 다양한 웹 엔진과 붙여서 쓸 수 있고 또 가볍기도 해서 Django와 같이 쓰는 경우도 있다. 코드도 비교적 단순하고, 특히 API 서버를 만들기에 매우 편리하다. 관련된 확장 기능들이 많기 때문이다.
2. 설치 방법
ㅇ 폴더를 생성후에 그 폴더에서 cmd를 열고
ㅇ 위의 명령어 순차적으로 실행
3. 사전 준비
ㅇ 위 처럼 flask에서 Flask를 import하고
ㅇ request 도 import 해야함
ㅇ 간단하게 테스트 할 수 있는 사이트
ㅇ https://identity.getpostman.com/login 여기서 로그인 후 사용가능
ㅇ workspace 만들어서 하면되고
ㅇ 위의 코드를 맨 마지막에 입력한 후
ㅇ 터미널에서 실행하면 실행됨
ㅇ 서버는 http://127.0.0.1:5000 이것이 많음
4. 코드 짜보기
(1) 기초 딕셔너리 생성
ㅇ stores라는 배열에 dict로 name, items가 키고
ㅇ my store와 { } 딕셔너리 하나 더 가 value
ㅇ 이 딕셔너리는 name, price를 키로 가지고 value는 clair와 15.99라는 value 가짐
(2) @app.get("/store")
ㅇ @app.get으로 http://127.0.0.1:5000/store 으로 끝나는 페이지에 가면
ㅇ get_store1()을 통해 stores의 내용을 볼 수 있음
ㅇ 위는 실행 결과
ㅇ get으로 페이지에 요청을 보내면
ㅇ 내용이 보여짐
(3) @app.post("/store")
ㅇ post로 http://127.0.0.1:5000/store 에 요청하면
ㅇ create_store()로
ㅇ request.get_json으로 먼저 가져오고
ㅇ new_store로 새 store 만들고
ㅇ 그것을 append로 추가한 후
ㅇ new_store을 return하는데 201 신호를 쏴주는거임
ㅇ 보내는 방법은 body에서 raw에서 json선택후 send
ㅇ 잘 보내지면 이렇게 결과가 나옴
ㅇ 201신호도 잘 나왔음
ㅇ 다시 get으로 send하면 추가 된 것을 잘 볼 수 있음
(4) app.get("/store/<string:name>")
ㅇ get으로 해서 http://127.0.0.1:5000/store/글자아무거나
ㅇ 위의 페이지에 get으로 요청하면
ㅇ get_store2 함수에 "글자아무거나" 를 매개변수로 받아서
ㅇ stores안에 있는 것들을 하나씩 store에 담고
ㅇ 만약에 store["name"]이 "글자아무거나" 와 일치하면
ㅇ "글자아무거나" 를 리턴함
ㅇ 없으면 404에러 리턴함
ㅇ 있는 것을 가지고 온다면
ㅇ 위처럼 잘 보여줌
ㅇ 잘못된 것을 요청을 한다면
ㅇ 위 처럼 404에러를 띄우면서 없다고 알려줌
(5) app.post("/store/<string:name>/item")
ㅇ http://127.0.0.1:5000/store/글자아무거나/item 으로 접근
ㅇ 위의 페이지에 post으로 요청하면
ㅇ create_item에 "글자아무거나"를 매개변수로 넣음
ㅇ stores안에 있는 것들을 하나씩 store에 담고
ㅇ 만약에 store["name"]이 "글자아무거나" 와 일치하면
ㅇ new_item으로 {} 안의 것들을 넣기
ㅇ stores['item']에 new_item 을 추가
ㅇ 그러고는 new_item을 201 신호와 함께 리턴
ㅇ 그게 아니라면 404에러와 함께 "글자아무거나"가 없다고 리턴
ㅇ 올바른 요청을 보내면
ㅇ 201과 넣은 값을 잘 리턴함
ㅇ 다시 /store에 get요청을 보내면
ㅇ 추가된 것들도 잘 보여주는 것을 볼 수 있음