플라스크에서 파일 업로드를 처리하는 것은 굉장히 쉽다. enctype 속성을 "multipart/form-data" 로 설정한 HTML 양식을 필요로 한다. URL핸들러는 request.files[] 객체에서 파일을 가져와 원하는 위치에 저장한다. 업로드 된 파일은 실제로 최종 위치에 저장되기 전 서버의 임시 위치에 저장이 된다. 대상 파일의 이름은 하드코딩 되거나 request.files[file] 객체의 filename 속성에서 가져올 수 있지만, secure_filename() 함수를 이용하여 보안처리를 해주는 것이 좋다. 파일명 : 13_upload.html enctype 속성을 multipart/form-data 로 가진 심플한 html 이다. 파일명 : 13_file_uploading.py f..
Flask 웹어플리케이션에서는 정보 메세지를 쉽게 생성할 수 있다. Flask 프레임워크의 플래싱 기능을 이용하면 하나의 뷰에서 메세지를 생성하고 next 라는 뷰 함수에서 이를 렌더링 할 수 있다. 파일명 : 12_messaage_flashing.py from flask import Flask, flash, redirect, render_template, request, url_for app = Flask(__name__) app.secret_key = 'random string' @app.route('/') def index(): return render_template('12_index.html') @app.route('/login', methods = ['GET', 'POST']) def logi..
Flask 는 redirect() 함수가 내장되어 있는데, 호출이 되면 응답을 반환하고 지정된 상태 코드를 사용하여 다른 대상으로 리다이렉트 한다. 또한 오류코드를 가지고 있는 abort() 함수도 있다. 파일명 : 11_redirect_and_errors.py from flask import Flask, redirect, url_for, render_template, request, abort app = Flask(__name__) @app.route('/') def index(): return render_template('login.html') @app.route('/login', methods = ['POST', 'GET']) def login(): if request.method == 'POST..
쿠키와 마찬가지로 세션 데이터는 클라이언트에 저장된다. 세션은 클라이언트가 서버에 로그인하고 로그아웃하는 시간 간격을 얘기한다. 이 세션에서 보관해야 하는 데이터는 클라이언트의 브라우저에 저장된다. (쿠키는 텍스트파일형태로 저장됨) 각 클라이언트의 세션에는 세션ID가 할당된다. 세션 데이터는 쿠키 위에 저장되며 서버는 쿠키에 암호화 방식으로 서명을 한다. 이 암호화를 위해 Flask 에는 정의된 sercret_key 가 필요하다. 파일명 : 10_session.py from flask import Flask, session, redirect, url_for, escape, request app = Flask(__name__) app.secret_key = 'abcdefghijklmnopqrstuvwxyz..