Flask/Error : Could not build url for endpoint 'AAA'. Did you mean 'CCC' instead?

Error Code :  Could not build url for endpoint 'AAA'. Did you mean 'CCC' instead?

Flask의 redirect 기능을 사용하려고 했는데 문제가 생겼다.

 

기존에는 url : (127.0.0.1/1) 을 입력하면 마이페이지로 이동하도록 했는데, 코드정리를 하면서 제대로된 이름을 사용하고자 이름을 바꿨다. 그런데 이미 이 좋지못한 url이 익숙해져서; 당분간은 /AAA 로 쓰더라도 마이페이지에 접속할 수 있도록

redirect 기능을 쓰고자 했다.

처음부터 함수, 주소 이름을 잘 짓는 습관을 길러야하는데...

 

참고로 redirect는 사전적인 의미로 전송하다, 다시 보내다 라는 의미에서 유추할 수 있듯이, 원하는 페이지로 이동하도록 넘겨주는 역할? 이라고 생각하면 된다.

@app.route('/AAA', methods=['GET', 'POST'])
def aa():
    return redirect(url_for('mypage'))

@app.route('/mypage', methods=['GET', 'POST'])
def mypage():
    return render_template("user/mypage.html")

내가 작성한 코드는 위와 같은데,

 

어디서 코드가 꼬인건지 /AAA 링크로 접속하면 에러와 함께 혹시 내가 찾는 페이지가 'CCC' 페이지는 아니니? 라는 문구가 보인다. 아닌데

 

해결 방법

@app.route('/AAA', methods=['GET', 'POST'])
def aa():
    return redirect(url_for('.mypage'))

@app.route('/mypage', methods=['GET', 'POST'])
def mypage():
    return render_template("user/mypage.html")

 

틀린그림 찾기를 하는 것 같겠지만... 바로 해결 방법을 말하자면

내가 이동하고자 하는 페이지를 제대로 인식하지 못하는 것 같으니, url_for('.mypage') 이부분에서 상대경로로 인식하게 만들기 위해서 온점(.)이 추가되었다.

 

 

참고 링크

 

About Python Flask "BuildError: Could not build url for endpoint 'index'. Did you mean 'main.index' instead?"

In my limited experience with Python programing and I am searching for a long time on net. But no use. Please help or try to give some ideas how to achieve this. The error messages: Traceback (most

stackoverflow.com