Flask
Python으로 웹 개발을 할 때 많이 쓰이는 프레임워크로는 Django이지만 너무 무겁고 기능이 많아서 복잡
라이트한 개발을 위해 사용되는 Flask에 대해 공부 및 정리를 해보려고 한다.
Content
- Route - URL에 웹페이지 연결하기(고정 URL)
- Route - URL에 웹페이지 연결하기(동적 URL)
- HTML 렌더링
Directory
project
└static
└style.css
└ ...
└templates
└index.html
└ ...
└run.py
run.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Hello, World!'
if __name__ == '__main__':
#app.run('127.0.0.1', 5000, debug=True)
app.run(debug=True)
app.run() 괄호 안에 debug=True 라고 명시하면 해당 파일의 코드를 수정할 때 마다 Flask가 변경된 것을 인식하고 다시 시작한다.
Route - URL에 웹페이지 연결하기(고정 URL)
URL을 방문 할 때 준비된 함수가 트리거되도록 바인딩 하기 위해 route() 데코레이터를 사용한다.
*** 데코레이터란?
- @로 시작하며 함수를 수정하지 않은 상태에서 추가 기능을 구현할 때 사용
from flask import Flask
app = Flask(__name__)
@app.route('/')
@app.route('/home')
def home():
return 'Hello, World!'
@app.route('/user')
def user():
return 'Hello, User!'
if __name__ == '__main__':
app.run(debug=True)
http://127.0.0.1:5000/ 뒤에 '/home'이라고 해도 동일하게 Hello world! 가 출력되는 페이지가 뜰 것이고
'/user'로 접속하면 Hello user!가 뜰 것 이다.
@app.route('/경로') 를 쓸 때 URL 경로는 반드시 “/” (슬래시)로 시작해야 한다.
Route - URL에 웹페이지 연결하기(동적 URL)
from flask import Flask
app = Flask(__name__)
@app.route('/')
@app.route('/home')
def home():
return 'Hello, World!'
@app.route('/user/<user_name>/<int:user_id>')
def user(user_name, user_id):
return f'Hello, {user_name}({user_id})!'
if __name__ == '__main__':
app.run(debug=True)
'/user/유저이름/유저아이디' 형식의 URL을 입력 받았을 때 유저이름과 유저아이디를 활용한 내용의 HTML 문서를 반환 가능
<int:user_id> 구문은 <converter : variable_name> 구문을 사용하여 URL에서 받은 변수 타입을 변형
<converter types>
● string(default) : slash가 포함되지 않은 문자열
● int
● float
● path : slash가 포함된 문자열
'Backend > Python' 카테고리의 다른 글
Python Flask 웹 페이지 제작(3) - Form (0) | 2021.12.21 |
---|---|
Python Flask 웹 페이지 제작(2) - Jinja2 템플릿 (2) | 2021.12.21 |
Python Flask + mysql 웹 기반 어플리케이션 제작 (0) | 2021.11.27 |
백준 코딩 연습 (0) | 2021.09.27 |
리얼센스 code (0) | 2021.02.09 |