TIL/[겨울방학 부트캠프]TIL
TIL 8일차 (22.01.12)
맹찬
2022. 1. 13. 06:22
<안내>
필자도 배우는 입장이라 틀린점, 잘못된 점이 있을 수 있습니다.
그러니 지적, 피드백 환영합니다.
FLASK
FLASK를 이용해서 RESTFUL API를 구성한다
RESTFUL API란?
REpresentational State Transfer
Application Programming Interface 의 준말
프로그램 - 컴퓨터 사이의 연결에서 객체지향 프로그래밍처럼 개발자끼리 일정한 개발 약속같은 느낌
from flask import Flask, jsonify, request
app = Flask(__name__)
# jsonify : 파이썬의 dictionary를 java에서 쓰는 json으로 바꿔주는것
# request : HTTP 리퀘스트를 담당
menus = [
{'id':1, "name":"Espresso", "price": 3800},
{"id":2, "name":"Americano", "price": 4100},
{"id":3, "name":"Americano", "price": 4600},
]
@app.route('/') # 홈디렉토리에 접근할경우
def hello_flask():
return 'Hello World!'
# GET /menus | 자료를 가지고 온다
@app.route('/menus') # GET은 method가 defalut임
def get_menus():
return jsonify({"menus": menus})
# POST /menus | 자료를 자원에 추가한다
@app.route('/menus', methods = ['POST'])
def create_menu(): # request가 JSON이라고 가정
# 전달받은 자료를 menus 자원에 추가
request_data = request.get_json()
# 자동으로 클라이언트가 서버로 post를 이용해서 요청을 할 때 담기는 자료가 담겨있음
# {"name": ... , "price" : ... ,, }
new_menu ={
"id" : 4,
"name" : request_data["name"],
"price" : request_data['price'],
}
menus.append(new_menu)
return jsonify(new_menu)
#PUT /menus
@app.route('/menus/<int:id>', methods = ['PUT'])
def renew_data(id):
request_data = request.get_json()
update = {
'id' : request_data['id'],
'name' : request_data["name"],
'price' : request_data['price'],
}
# 이 다음에 어떻게 할 지 모르겠음
return jsonify()
#DEL /menus
@app.route('/menus/<int:id>', methods = ['DEL'])
def del_data(id):
request_data = request.get_json()
update = {
}
# 이 다음에 어떻게 할 지 모르겠음
return jsonify()
if __name__ == '__main__':
app.run()
파이썬으로 코딩을 한 뒤, postman으로 어떻게 실행하는 지 볼 수 있음
예를들어 get 메소드 같은 경우엔 입력값이 없어도 바로 메뉴를 출력하지만,
post 메소드 같은 경우엔, 뭘 적을 지 알려줘야해서 파이썬에선 작동하기 힘듬
저녁 세션 수업 간단히 복습
1. git 복습 git을 왜 쓰는지, 어떤 상황에서 어떤 명령어를 써야 좋을 지 생각해봤음
2. bitcoin 과제 REVIEW
- bit coin 자료의 년 - 월 - 일 이 다음 달로 넘어갈 때, 년 - 일 - 월 로 바뀌는 것을 한번에 정리해 줄 수 있을까요?
- -> 인덱스를 기준으로 날짜 재 설정하기 ( 내일 한번 실제로 해봐야 할 듯)
- bit와 eth를 같은 y축에 넣으니 eth의 변화값을 잘 관찰할 수 없었다. -> y = log(price)를 한다면 y축에 가중치를 줘서 변화는 잘 볼 수 있으나, 축이 왜곡되어서 좋은 자료가 되지는 않음 -> 잘 해석하는 능력의 중요성!
- 실제로 자료에서 어떤 결측치나, 자료왜곡 등이 있을 수 있다. 그러므로 우린 자료를 잘 해석하는 능력을 가져야한다.
3. flask 과제 HINT
- app route에서 method는 get메소드 아니면 post 메소드 두 개 밖에없음
- -> 그 말은 put이나 del메소드는 get 또는 post 메소드로 만들어야 한다는 소리
- get은 아닐테니 post메소드일거고, post메소드를 이용해서 어떠한 조건일 경우 작동하도록 삽질을 열심히 해보자.