본문 바로가기

포트폴리오/python

flask 메모

models.py<=orm으로 db 만드는 것

models.py<= db에 쿼리 날려서 돌아온 응답으로 템플릿에 데이터 전달

 

templates(패키지) <= 데이터 받아서 화면에 뿌려줌

 

app = Flask(__name__) 방식은 app을 전역변수로 사용하기 때문에 프로젝트 규모가 커질수록 문제가 발생할 소지가 많아진다. 대표적인 문제는 순환참조(Circular Import)오류이다.이러한 문제를 예방하기 위해서 플라스크는 어플리케이션 팩토리(Application Factory)를 사용하라고 권고한다. 

(최초 생성시 어플리케이션을 패키지화, app.py -> __init__.py로 변경 / 전역변수 app을 create_app() 함수 안에서 생성  -> 블루프린트 연결 -> return app)

 

app.py(__init__.py)<= 디비와 앱을 연결해주고, 모델과 뷰를 앱에서 사용할 수 있게 초기화 시켜줌. 심장같은 역할

 

-브라우저가 요청하고 flask가 그 응답을 처리하는 구간을 플라스크에서는 컨텍스트(Context)라고 말한다

 

url_for("question._list",question_id=question.id) 이런식으로 던지고, views.py에서 @bp.route("/list/<int:question_id>",methods=["post"])이런식으로 변수를 받는다. 

 

form 부분.
forms 의 class객체는 각 인풋창의 name과 맵되어 사용된다. 그리고 csrf를 쉽게 막아주기 때문에, 꼭 사용해야 한다.