3) Flask 기초: 기본 실행
Flask 프레임워크: 서버를 구동시켜주는 편한 코드 모음. 서버를 구동하려면 필요한 복잡한 일들을 쉽게 가져다 쓸 수 있습니다.
프레임워크를 쓰지 않으면 태양초를 빻아서 고추장을 만드는 격!
프레임워크는 3분 요리/소스 세트라고 생각하면 되겠습니다!
app.py 파일을 만들어 아래 코드를 붙여넣어봅니다.
파일 이름은 아무렇게나 해도 상관없지만,
통상적으로 flask 서버를 돌리는 파일은 app.py라고 이름 짓습니다!
[코드스니펫] - flask 시작 코드
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'This is Home!'
if __name__ == '__main__':
app.run('0.0.0.0',port=5000,debug=True)
오른쪽 클릭 → 'Run app
'을 클릭하고, 터미널에 아래와 같은 메시지가 뜨면 실행 성공!
이제 크롬에서 http://localhost:5000/ 으로 접속해보세요.
화면에 Hello World!
라는 메시지가 보이시나요? 그렇다면 성공한 것! 👏
종료하는 방법
터미널 창을 클릭하시고, ctrl + c 을 누르시면 서버를 종료할 수 있습니다.
4) Flask 기초: URL 나눠보기
@app.route('/) 부분을 수정해서 URL을 나눌 수 있습니다! 간단하죠?
url 별로 함수명이 같거나, route('/')내의 주소가 같으면 안됩니다.
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'This is Home!'
@app.route('/mypage')
def mypage():
return 'This is My Page!'
if __name__ == '__main__':
app.run('0.0.0.0',port=5000,debug=True)
7) 들어가기 전에: GET, POST 요청타입 - 리마인드
리마인드!
은행의 창구가 API와 같다는 것을 기억하시나요?
****같은 예금 창구에서도 개인 고객이냐 기업 고객이냐에 따라 처리하는 것이 다른 것처럼,
클라이언트가 요청 할 때에도, "방식"이 존재합니다.
HTTP 라는 통신 규약을 따른다는 거 잊지 않으셨죠? 클라이언트는 요청할 때 HTTP request method(요청 메소드)를 통해, 어떤 요청 종류인지 응답하는 서버 쪽에 정보를 알려주는 거에요.
GET, POST 방식
여러 방식(링크)이 존재하지만 우리는 가장 많이 쓰이는 GET, POST 방식에 대해 다루겠습니다.
GET → 통상적으로! 데이터 조회(Read)를 요청할 때
예) 영화 목록 조회
→ 데이터 전달 : URL 뒤에 물음표를 붙여 key=value로 전달
→ 예: google.com?q=북극곰
POST → 통상적으로! 데이터 생성(Create), 변경(Update), 삭제(Delete) 요청 할 때
예) 회원가입, 회원탈퇴, 비밀번호 수정
→ 데이터 전달 : 바로 보이지 않는 HTML body에 key:value 형태로 전달
8) GET, POST 요청에서 클라이언트의 데이터를 받는 방법
18) 프로젝트 설계 - 만들 API 설계
포스팅API - 카드 생성 (Create)
A. 요청 정보
요청 URL= /memo
, 요청 방식 = POST
요청 데이터 : URL(url_give), 코멘트(comment_give)
B. 서버가 제공할 기능
URL의 meta태그 정보를 바탕으로 제목, 설명, 이미지URL 스크래핑
(제목, 설명, URL, 이미지URL, 코멘트) 정보를 모두 DB에 저장
C. 응답 데이터
API가 정상적으로 작동하는지 클라이언트에게 알려주기 위해서 성공 메시지 보내기
(JSON 형식) 'result'= 'success'
리스팅API - 저장된 카드 보여주기 (Read)
A. 요청 정보
요청 URL= /memo
, 요청 방식 = GET
요청 데이터 : 없음
B. 서버가 제공할 기능
DB에 저장돼있는 모든 (제목, 설명, URL, 이미지URL, 코멘트) 정보를 가져오기
C. 응답 데이터
아티클(기사)들의 정보(제목, 설명, URL, 이미지URL, 코멘트) → 카드 만들어서 붙이기
(JSON 형식) 'articles': 아티클 정보