목록라이브러리&프레임워크 (8)
기록과 정리의 공간
114~117p 예제 작성 중 발생한 문제 실습 환경 이클립스 STS JDK 1.8 Tomcat 8.5 Spring 5 Spring Legacy Project > Spring MVC Project로 새프로젝트 생성 후, Java Config를 이용하기 위해 web.xml, servlet-context.xml, root-context.xml을 삭제하고, 대신 각 파일에 해당하는 config클래스들을 생성해 설정해줬다. 우선적으로 Spring Legacy Project로 생성된 프로젝트는 서블릿 2.5버전을 사용하는데, Java Config를 이용하려면 서블릿 3.0이상으로 버전을 변경해주어야 한다. 따라서 pom.xml파일의 일부를 아래와 같이 수정해줬다. (문제의 원인) maven repository에서..
Spring을 공부하며 간단한 예제 작성 중, @RunWith 어노테이션의 인자값으로 준 SpringJUnit4ClassRunner.class에 Class cannot be resolved to a type 에러가 가 발생했다. 마찬가지로 @ContextConfiguration 어노테이션을 사용하니 ContextConfiguration cannot be resolved to a type에러가 발생했다. 해결 방법 pom.xml에서 부분을 주석 처리해주면 된다.
Spring 공부를 하며 간단한 예제 작성 중, @Log4j 어노테이션을 사용하니 org.apache.log4j.Logger cannot be resolved to a type 에러가 발생했다. 해결 방법 아래와 같이 pom.xml에서 부분을 주석 처리해주면 된다.
해결 방법 pom.xml에 아래 dependency를 추가해준다. javax.annotation javax.annotation-api 1.3.2
참고 인프런 강의 REST API 관련 포스트 Flask로 REST API를 구현하는 방법 URI요청에 대한 응답을 JSON형식으로 작성하여 데이터를 반환하도록 만들면 된다. Flask에서는 딕셔너리 형태로 데이터를 만들고, 이를 jsonify() 메서드를 활용해 JSON포맷의 데이터로 만들 수 있다. 각 요청 메서드마다 파라미터값을 추출하는 방식이 다르다. GET/PUT/DELETE는 방식이 동일, POST만 다르다. GET/PUT/DELETE는 request.args.get('파라미터이름') 으로 가져온다. (파라미터가 가진 값을 가져옴) POST는 request.get_json() 으로 데이터를 가져온다. 이 때, 딕셔너리 형태로 가져오는데, 원하는 파라미터가 가지고 있는 값에 접근하..
1. 메시지 플래싱(Message Flashing) 플래싱 시스템은 기본적으로 요청의 끝에 메시지를 기록하고 그 다음 요청에서만 그 메시지에 접근할 수 있게 한다. 보통은 플래싱을 처리하는 레이아웃 템플릿과 결합되어 사용된다. (참고 링크) 2. flask.flash() / flask.get_flashed_messages() (API문서 링크) 메세지를 flash 하기 위하여 flash() 메소드를 사용하고 메세지를 가져오기 위하여 템플릿에서 사용할 수 있는 get_flashed_messages() 메소드를 사용할 수 있다. (참고 링크) 예제 코드 메시지 플래싱 기능을 사용하기 위해서는 SECRET_KEY를 반드시 설정해줘야 한다. 파이썬코드에서 flash()에 원하는 메시지를 인자로 넘겨준다. tes..
1. flask.redirect() (공식 문서 링크) 호출 될 경우, 클라이언트를 대상 위치로 리디렉션하는 응답 오브젝트 (WSGI 애플리케이션)를 리턴한다. 첫 번째 인자로 location을 받는다. 이는 응답이 redirect해야하는 위치를 의미한다. 2. flask.url_for() (공식 문서 링크1), (공식 문서 링크2) 라우팅이 설정된 함수에 대한 URL을 얻어내기 위해 사용할 수 있다. 첫 번째 인자로 함수의 이름을 받고, 두 번째 부터는 URL 룰의 변수 부분에 대한 다수의 키워드를 인자로 받는다. 참고로 url_for()는 html파일에서 jinja문법을 통해 사용될 수 있다. ex> 내용 예를들어 '/view'이런식으로 직접 url을 쓰지 않고, url_for()를 사..
(참고 링크)의 일부를 정리함 Flask의 기본 어플리케이션 Flask의 기본 어플리케이션은 다음과 같은 모습이다. 작성한 어플리케이션의 이름을 'flask.py'로 하지 않도록 주의한다. Flask와 자체 충돌이 나기 때문. #1 : Flask class를 import함 #2 : Flask class의 인스턴스를 생성. 인자로 모듈이나 패키지의 이름을 넣는다. ★인자로 모듈의 이름을 직접 넣지 않고, __name__으로 지정한 이유? : __name__은 현재 모듈(.py 파일)의 이름으로 정해지는데 해당 모듈이 시작점일 경우, __main__으로 변경되므로 이 부분을 해결하기 위해 __name__으로 지정 #3 : route() 데코레이터로 어떤 URL이 함수를 실행시키는지 알려준다. #4 : 함수는..