Flask 입문 수업을 듣고 중요한 내용을 정리했습니다.
개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.
다양한 routing 기법(Python)
flask의 다양한 routing 기법을 예제를 통해 연습해보고자 한다.
routing 기법으로 정적 페이지 리턴하기(HTML)
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "<h1>Hello World!</h1>"
@app.route("/hello")
def hello_flask():
return "<h1>Hello Flash!</h1>"
@app.route("/first")
def hello_first():
return "<h3>Hello First</h3>"
if __name__ == "__main__":
app.run(host="0.0.0.0", port="8080")
```
결과 :
```
flask의 라우팅(routing) 기법으로 정적인 페이지를 리턴한 결과이다.
데코레이터를 사용해서, http://0.0.0.0:8080/, http://0.0.0.0:8080/hello, http://0.0.0.0:8080/first의 3개 url을 만든 것이다.
복잡한 routing 기법(데이터 전달)
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "<h1>Hello World!</h1>"
@app.route("/profile/<username>")
def get_profile(username):
return "profile: " + username
@app.route("/first/<username>")
def get_first(username):
return "<h3>Hello " + username + "!</h3>"
if __name__ == "__main__":
app.run(host="0.0.0.0", port="8080")
```
결과 :
```
라우팅(routing) 경로 설정 시, @객체이름.route(/route 경로이름/ 원하는 값)의 코드를 사용하면 사용자가 원하는 값을 라우팅으로 호출하는 함수의 인자로 넣어줄 수 있다.
즉, 위의 예시 코드처럼 <username>자리에 특정 값을 넣으면 라우팅으로 호출하는 get_profile() 함수의 인자로 해당 값을 넣을 수 있다.
복잡한 routing 기법(데이터 타입을 설정하여 전달)
from flask import Flask
app = Flask(__name__)
def add_file(data):
return data + 5
@app.route("/")
def hello():
return "<h1>Hello World!</h1>"
@app.route("/message/<int:message_id>")
def get_message(message_id):
return "message id: %d" % message_id # %d 는 int, %f 는 float, %s 는 string
@app.route("/first/<int:messageid>")
def get_first(messageid):
data = add_file(messageid)
return "<h1>%d</h1>" % (data)
if __name__ == "__main__":
app.run(host="0.0.0.0", port="8080")
```
결과 :
```
라우팅(routing) 경로를 설정하면서, 원하는 값을 인자로 받는 경우 해당 인자의 데이터 타입을 설정할 수 있다.
만약, 데이터 타입을 별도로 설정하지 않으면 기본적으로 문자열 데이터 타입으로 설정된다.
'Flask' 카테고리의 다른 글
Flask - flask로 정적 웹 페이지 지원 (0) | 2021.11.25 |
---|---|
Flask - REST API의 이해를 위한 웹 기술 (0) | 2021.11.24 |
Flask - flask로 REST API 구현 및 테스트 (0) | 2021.11.24 |
Flask - flask의 시작과 웹서버 실행 (0) | 2021.11.21 |
Flask - flask의 이해를 돕는 파이썬 문법 정리 (0) | 2021.11.21 |
댓글