2022. 2. 27. 16:06ㆍBackEnd/Flask (출처:시니어 개발) - 클론코딩
#Install flask module
pip install flask -> path에 자동으로 잡혀서 어디에서 해도 무관함
python install flask
#Setup Flask Project
mkdir webapp
flaskapp - context에 해당
static - 정적인 파일들 (연산이 없는 것들)
templates - html이 존재하는 영역
__init__.py - Web application을 생성하는 것 (파이썬 수업에서는 생성자 수업에서 나왔다 한다.) ,web application을 구동하는 것, 즉 모든 정보를 메모리에 올리는 것을 기술함(핵심,메인파일에 해당함)
#touch start_helloflask.py 로 작성간능
start_flask.py
실행 시키는 역활
메모리에 띄우는 역
start_helloflask.py에 작성한다.
실행(root에서 실행)
python start_helloflask.py
***학습 중이므로 WARING은 일단 무시하고 실행 *** (우측 실행 결과)
실행이 빨리 뜬다. java는 3,5초 정도 걸리는데 이유는 Python은 100% interpreter언어이기 때문이다.
1.Serving Flask app - 어떤 app이 실행 되었나.
2.lazy loading - 메모리에 모든것을 끌어앉고 올리지 않겠다.(lazy란 용어자체가 컴퓨터 공학 용어로 천천히 끌어 올리겠다는 의미이다.)
3.Environment는 기본적으로 2가지가 있다. devlep(개발중)과 production(실제 서비스), default가 production에 해당해서 현재 production으로 뜬다.
4.WSGI - WebServer Gateway Interface
게이트웨이 - 어떤 포트를 붙들고 있는거.
서버 - 여기선 flask 서버에 해당
인터페이스 - 대면하고 있는거.(포트를 계속 보고 있음)
Global Object : g
from flask import g
g는 전역변수
실시간 접속자 수, 총 방문자 수, 채팅 시 서버 컨트롤 등등... 사용.
아래 코드를 보면 사용 법 알 수 있음.
Response Objects
전달되는 데이터 : 'Custom Response'
상태 : 200
전달되는 데이터2: json
header 값 확인 결과 json 데이터로 보내 준 값이 존재 했다. 즉 (1,2,3)의 3번 부분은 header에 해당한다. (header는 편지봉투의 뒤편 주소,이름,전화번호가 담긴 것과 같은 것으로 생각하면 된다.)
Response Objects (Con't) : WSGI
실행할
Requset Event Handler
before_first_request - 맨 처음 요청 보낼 때
before_request - 매 번 요청시마다 이 요청이 따라 옴(web Filter 처리로 자주 썻음)
after_request -
teardown_request - 다 띄우고 나서 실행
teardown_appcontext - application context가 destory 될 때.
Routing
redirecr : a.html을 쳤는데 에서 b.html로 가는거.
Routing (Con't d) : subdomain
Request Parameter
Request Parameter Custom Function Type
from datetime import datetime,date -> 추가
웹의 개념 상 한번만 메모리에 띄우기 위해서 이렇게 사용한다고 한다. (공부가 좀더 필요한 부분)
Request.environ
요청에 대한 환경변수 값의 셋팅
Request
Response Object
Cookie
쿠키도 class에 해당함, 메모리에 떠 있는 것이 아님, 클라이언트에게 내려주고, 클라이언트한테서 받는 것임.
Session
서버 메모리에 떠 있는 싱글톤 객체. 내가 준 쿠키의 사용자가 맞는지 확인 하기 위해서 필요한 것.
Permanent_session_ligetime => 어느 정도 시간이 지나면 Session이 자동으로 날라 갈 것인지.
Redis
디비에만 존재하는 메모리 디스크(메모리디비),네트워킹이 가능. 여러 개발 공간의 정보를 한군데에 저장하는 식으로도 많이 사용한다.
Session(Cont'd)
------ 후기 -----
그런데... pip 버전 에러가 떠러 sudo python -m pip install --upgrade pip로 pip를 버전 업그레이드 했다..
좀더 찾아 보고 할 것 그랬다. 다른 곳에서 보니까 이렇게 하는 것을 추천한다...
******
WARNING: You are using pip version 21.2.3; however, version 22.0.3 is available.
You should consider upgrading via the '/Users/jin.come.up/study/python/flask/venv/bin/python3 -m pip install --upgrade pip' command.
*******
Users/jin.come.up(lcoal)/study/python/flask/venv/bin/로 가면 python3라는 파일이있다. python3 -m pip install --upgrade pip를 bash에 복붙하면 되었다.
- pip 으로 패키지 설치할 때, sudo는 위험하니 절대 쓰지 맙시다.
- 대신 가상환경 패키지 매니저를 설치하고 가상환경을 활용합시다.
- pip 개발자도, 특권이 필요한 경로를 디폴트 경로로 설정한 것에 대해후회한다고 합니다
'BackEnd > Flask (출처:시니어 개발) - 클론코딩' 카테고리의 다른 글
S3 file upload 예시 flask (0) | 2022.03.27 |
---|---|
이미지 리사이징 - flask (0) | 2022.03.26 |
config => app.config (0) | 2022.03.12 |
노마드 코더 따라하기(get요청만) (0) | 2022.03.12 |