본문 바로가기

웹 개발/Flask

Flask 웹 개발(2) : URL을 통해 다른 화면 불러오기.

이전 게시글 : https://j-d-e.tistory.com/5

 

Flask 웹 개발(1) : Flask를 이용해보자.

Flask의 사용법을 익히기 위해 간단한 웹페이지를 Flask를 통해 만들어보자. Flask? Flask는 파이썬으로 작성된 웹 프레임워크다. 특별한 도구나 라이브러리가 필요없기 때문에 마이크로 프레임워크

j-d-e.tistory.com

app.route()를 이용하여 URL을 통해 다른 내용을 불러오자.

 

이전에 route()의 기능에 대해 예상해 보았다. 이번 게시글에서는 app.route()를 이용해서 read라는 함수를 웹페이지 상에서 불러오는 과정을 기록할 것이다.

작성한 코드

from flask import Flask
app = Flask(__name__)

@app.route("/read/<topicId>")
def read(topicId):
    return str(topicId)

@app.route("/")
def home():
    return "main page"
app.run()

이전 게시글에서 작성한 코드와 다른점은 다음과 같다.

1. hello_world() 함수를 home()으로 바꿔서 main page라는 문구가 출력되도록 수정하였다.

2. read() 함수 추가.

 

오늘 이 글의 핵심 내용은 read()함수이다.

 

첫 번째 게시글에서 설명했던 것 처럼, route()의 인자를 통해 함수 호출에 사용될 URL을 설정할 수 있고, 이를 통해 함수를 호출 할 수 있다.

그런데 여기서 재미있는 점은, route의 인자를 우리가 사용할 수 있다는 점이다.

우선 코드의 실행 결과를 확인하고 설명을 이어 나가도록 하겠다.

 

실행 결과

코드의 실행 결과. 메인 페이지 화면이 열린 것을 확인할 수 있다.

 이 메인페이지 창의 URL 뒤에 "/read/123" 을 추가해주었다.

메인 페이지의 URL 뒤에 /read/123 추가 후 화면, 화면에 123이 출력된 것을 확인할 수 있다.

 

!!!!

저 123은 갑자기 어디서 튀어나왔을까?


코드 분석

from flask import Flask
app = Flask(__name__)

@app.route("/read/<topicId>")
def read(topicId):
    return str(topicId)
    
@app.route("/")
def home():
    return "main page"
app.run()

 

Flask를 import하고 Flask 인스턴스를 만들어준다. 그리고 앱을 실행하면 app.route("/") 를 통해 home 함수가 실행된다.

 

그럼 이제 read함수에 대해 알아보자.

 

read 함수에는 인자로 topicId를 전달받는다. read 함수 위의 @app.route()의 인자에는 "/read/<topicId>"라는 값이 적혀있다. 이를 이용하여 /read/<topicId>라는 URL을 통해 read 함수를 실행할 수 있다.

여기서 <> 안에 있는 topicId는 우리가 입력할 수 있다. 쉽게 생각하면 변수같은 존재라고 생각한다.

topicId에 입력한 값을 우리는 read함수의 인자로 사용하는 것이다.

 

read 함수의 내용은 topicId에 담겨있는 값을 문자열 형태로 반환해주는 역할을 한다.

따라서 /read/<topicId> URL을 통해 접속을 한다면 우리가 입력한 topicId의 값을 문자열로 반환해서 화면에 보여주게 되는 것이다. 


 

오늘은 app.route()를 이용해 다른 URL을 통해 다른 내용을 불러오는 작업을 완료하였다. 다음 포스팅은 지금까지 배웠던 내용과 SQLite을 이용해 간단한 게시판을 한 번 구현할 것이다. 

 

 

피드백은 언제나 환영입니다. 감사합니다!

'웹 개발 > Flask' 카테고리의 다른 글

Flask 웹 개발(1) : Flask를 이용해보자.  (0) 2021.09.09