본문 바로가기
플라스크(Flask)/Flask 오류 노트

[Flask 오류 해결] AssertionError: View function mapping is overwriting an existing endpoint function

by 현군의 coding&IT story 2024. 3. 1.

문제 상황

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 서버를 구동해라