Week2 - Day1 (Flask)
우선, 내가 참가하고 있는 부트캠프에서는 파이썬을 사용하고 있다.
그래서 이번에 파이썬 웹 프레임워크를 배우고 있는데, 그중에서 이번주는 Flask
를 배운다.
사실 나는 캡스톤할 때 Flask
를 이용해서 rest api를 만들어 보긴 했었으나 그때 당시에는 Django
가 가장 강력할 때 였어서, 플라스크에 관한 레퍼런스나 책이 많지 않아서 공부할 때 조금 힘들었기도 했고, 잠깐하다 말아서 이번에 좀 진득하게 배우고 계속 잘 활용하고싶당 ㅎㅎㅎ
그래서 Flask
가 뭔데?:
python
의 웹 프레임워크 중 하나- https://flask-docs-kr.readthedocs.io/ko/latest/
pip install Flask
로 설치한 후 사용할 수 있다.
여기서 잠깐! virtualenv가 뭐야?
- 가상환경
- 왜 써야하는 걸까?
- 경우에 따라, 자신이 속한 프로젝트에서 사용하는 언어의 버전이 다를 수도 있다. 예를 들어, 현재 내 로컬에는 파이썬이 3.9 버전인데, 프로젝트에서는 3.8버전을 요구한다면! 이와 같은virtualenv
을 통해 프로젝트에서 필요한 환경을 따로 세팅할 수 있다.
- 위 처럼pip
을 통해virtualenv
설치가 완료되면, 자신이 원하는 이름의 가상환경을 만들어준다. (나는 기본에 따라 venv로 만들었다.)
-source venv/bin/activate
을 통해 가상환경을 활성화해준다.pip freeze
는 현 환경에서 설치된 모듈들을 확인할 수 있는데, 지금 실행중인 가상환경venv
에는 아무것도 설치하지 않았으니, 해당 내역에 아무것도 없다! 이는 당연한 것.
-그래서 이후에 flask를 따로 설치해줬다.
-이후에 가상환경을 종료하고 싶을 땐,deactive
하나만 cli에서 입력해주면 끝!
시작하기
Flask의 기본 형식을 아래와 같다.
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
- 이 코드는 이 파일이 실행되었을 때, 가장 기본 화면이 'Hello World!'로 나올 것이다.
- cli 환경에서
flask run
을 입력하면 해당 앱이 실행이 될 것인데, 주소창이 나올 것이다. 그 주소창을 브라우저 url창에 입력하면 앱의 실행결과를 볼 수 있다.
메소드 지정하기
@app.route('/', methods=["GET"])
route
함수안에 있는methods=[""]
는GET/POST/PUT/DELETE
등이 들어간다.- 기본적으로 methods는
GET
을 사용하는 것이 보편적이기 때문에, 해당 사항에서는route
함수에서methods
항목을 생략해도 된다.
Flask 예시
@app.route('/menus/<int:num_id>', methods=["DELETE"])
def remove_menu(num_id):
for i in range(len(menus)):
if menus[i]["id"] == num_id:
del menus[i]
break
return "Success delete %dth menu" %num_id
# return f"Success delete {num_id}th
- 이건 실습시간에 내가 만들어본 기능인데, 이처럼 url은 내가 받고싶은 형식으로 받고, 어떤
method
를 사용할 것인지 명시해주면 된다. - 아래 return문은 둘다 값은 결과값인데, formatting에 따라 다른 방식으로 쓸 수 있다.
내가 안잊으려고 메모
인터넷과 웹
- 지금와서는 당연한 이야기지만,
인터넷
과웹
은 엄연히 다른 단어다. (컴공에 오기전까지는 아무것도 몰랐다.) - 인터넷: 특정한 연결망(네트워크)로 연결된 통신망이다.
- 웹: 위의 인터넷으로 연결된 사용자들의 공간이다.
- 인터넷으로 연결되어있지만 웹은 아닌 무언가: 대표적으로 메일이 있다. 웹과 메일과 방식이 조금 다르다.
요청, 처리, 응답
- 요청(Request): 클라이언트가 서버에게 어떤 무언가(정보)를 요청한다.
- 처리: 서버가 클라이언트가 원하는 행위를 한다.(DB에서 정보를 갖고오거나 웹페이지를 채워서 문서를 준비한다.)
- 응답(Response): 서버가 결과값을 클라이언트에게 보낸다(제공한다).
여기서 우리의 Flask는?
- 클라이언트로부터 들어온 요청이 무엇인지 서버에게 전달해주는 역할은 한다고 보면 된다.
- A라는 요청이 왔을 때는 어떻게 처리할 것인지
Author And Source
이 문제에 관하여(Week2 - Day1 (Flask)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jaee5/Week2-Day1-TIL저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)