Python에서 AngularJS 사용시 특히 flask 프레임워크를 사용하면 500 internal server error 발생할 수 있으며 이를 수정하는 방법에 대하여 알아봅니다.
# Python flask에서 AngularJS 사용시 500 에러가 나타나는 이유
원인은 Python에서 사용되는 Jinja2의 표현식 심볼 {{ }}과 AngularJS의 {{ }}가 동일하여 서버에러가 발생하게 된다. 이를 수정하기 위한 방법은 무엇일까요?
# Python Jinja2와 AngularJS 사용되는 {{ }} 기호를 다르게 설정하기
AngularJS의 표현식에 사용되는 심볼기호를 다르게 적용하면 더 이상 에러는 발생되지 않습니다. 이때 아래와 같이 $interpolateProvider 서비스의 startSymbol() 메소드를 사용합니다.
이처럼 코드를 변경한 후 기존의 AngularJS HTML에 사용한 바인딩 코드를 모두 {{ }} 에서 {[{ }]}로 변경하도록 합니다. 그러면 에러는 발생하지 않습니다.
이번에는 Jinja2의 심볼을 변경하는 것도 가능합니다. 아래와 같이 config 옵션을 변경합니다.
두 가지 방법 중 angularJS를 바꾸는 방법이 많이 사용되는 것 같습니다.