문제 상황
Flask 프레임워크를 공부하던 중 아래와 같은 오류 메시지가 떴다.
AssertionError: View function mapping is overwriting an existing endpoint function: hi
문제 원인
- flask 프레임워크를 사용할 때 라우트 아래의 함수를 똑같은 함수로 지정하면 안된다.
[문제가 되는 코드]
from flask import Flask
app = Flask(__name__) # flask 객체 생성 (app)
@app.route("/")
def hi(): # hi 함수 자동 실행
return "<h2>hihi</h2>"
@app.route("/hello")
def hi(): # hi 함수 자동 실행
return "<h1>Hello Flask222!</h1>"
if __name__ == "__main__": # 해당 python 파일에서 실행한거면
app.run(host="127.0.0.1", port="8082") # app 객체의 flask 서버를 구동해라
문제 해결
- route 아래의 함수의 이름은 모두 달라야 한다.
- 아래 코드에서 hi 함수 하나를 hi_flask 함수로 수정한다.
from flask import Flask
app = Flask(__name__) # flask 객체 생성 (app)
@app.route("/")
def hi(): # hi 함수 자동 실행
return "<h2>hihi</h2>"
@app.route("/hello")
def hi_flask(): # 수정
return "<h1>Hello Flask222!</h1>"
if __name__ == "__main__": # 해당 python 파일에서 실행한거면
app.run(host="127.0.0.1", port="8082") # app 객체의 flask 서버를 구동해라