
❕리다이렉션과 에러 사용자가 다른 엔드포인트로 redirect하기 위해서는 redirect() 함수를 사용해야 합니다. 에러코드를 가지고 일찍 요청을 중단하기를 원한다면 abort() 함수를 사용하면 됩니다. from flask import Flask, redirect, url_for @app.route('/') def index(): return redirect(url_for('login')) @app.route('/login') def login(): abort(401) this_is_never_executed() 위 코드는 사용자가 접근 불가한 페이지에 방문하면 하얀 화면에 검정 글씨의 에러 페이지가 각 에러코드를 보여주는 화면입니다. 만약 템플릿을 이용한 에러페이지를 이용하려면 errohandle..

웹 어플리케이션에 있어서 클라이언트에서 서버로 보내는 데이터를 처리하는 것은 매우 중요한 일입니다. Flask에서는 클라이언트가 보내는 이 정보를 request 객체에 의해 제공됩니다. ❕컨텍스트 로컬 Flask에서 어떤 객체들은 보통 객체들이 아닌 전역 객체에 속합니다. 이 객체들은 실제로 어떤 특정한 문맥에서 지역 객체들에 대한 대리자의 역할을 수행합니다. 서버는 웹에서 요청이 들어오면 새로운 쓰레드를 생성합니다. 즉 외부에서 들어오는 요청에 대해서는 말입니다. 하지만 내부에서 들어오는 요청에 대해서 Flask는 현재 처리되는 쓰레드를 활성화된 문맥으로 간주하고 현재 실행되는 어플리케이션과 WSGI환경을 그 문맥에 연결합니다. 이렇게 처리하는 것은 문맥을 지능적으로 처리하는 방식이며 한 어플리케이션이..

❕HTTP 메소드 Flask에서는 URL접근에 대하여 기본적으로 GET 방식으로 제공합니다. 하지만 route() 데코레이터에 methods 인자를 제공하면 다른 방식으로 변경할 수 있습니다. @app.route('/login', methods=['GET','POST']) def login(): if request.method=='POST': do_the_login() else: show_the_login_form() GET - 브라우저가 어떤 페이지에 저장된 정보를 단지 얻기 위해 서버에 요청하고 서버는 그 정보를 보냅니다. HEAD - 브라우저가 어떤 페이지에 저장된 내용이 아닌 헤더라 불리는 정보를 요청합니다. GET요청을 받은 것 처럼 처리하나, 실제 내용이 전달되지는 않습니다. Flask에서는 ..

Flask는 Werkzeug와 Jinja2 라이브러리에 의존합니다. Werkzeug는 웹어플리케이션과 다양한 서버 사이의 개발과 배포를 위한 표준 파이썬 인터페이스인 WSGI를 구현한 툴킷입니다. 반면 Jinja2는 HTML 템플릿을 렌더링 하는 템플릿 엔진입니다. Flask를 사용하는 방법은 여러가지가 있습니다. 그 중 가장 강력한 사용법은 virtualenv을 사용하는 것입니다. 하지만 해당 글은 사용하지 않습니다. Python에서 Flask를 설치하지 않았다면 pip를 이용해 먼저 설치하도록 합니다. $ pip install Flask Flask의 기본 어플리케이션은 다음과 같은 모습을 가지고 있습니다. from flask from Flask app=Flask(__name__) @app.route(..

VS code를 이용해서 Flask를 공부하기 위해 설치하려 했지만 제목과 같은 오류가 발생했다. 그래서 찾아봤다. 1. Ctrl + Shift + P 누르고 Terminal : Select Default Profile 검색 2. Git Bash 혹은 Command Prompt 선택 후 기존 열려있던 터미널 삭제 3. Ctrl + ` 혹은 Ctrl + Shift + ` 로 새 터미널 열기 1번과 2번을 하고 3번을 했는데도 pip 설치가 안된다면 pip 자체가 설치 안되있는 경우이거나 PATH가 잡히지 않는 경우다. 그렇다면 아래의 사진처럼 뜬다. 4. 그렇다면 PATH 경로 잡아주면된다.