2013-03-19 2 views
2

사용자가 웹 인터페이스를 통해 입력 한 데이터를 저장하는 장고 앱이 있습니다.django app 나머지 api - 코드를 넣을 곳

모델 인스턴스를 보거나 저장할 때 제 3 자 REST API를 사용해야합니다. 이 작업을 수행하는 방법을 알고 있지만, 내가 확신 할 수없는 부분은이 코드가 장고 응용 프로그램과 함께 있어야하는 위치입니다.

내 직감은이 코드를 모델 클래스에 넣는 것입니다.하지만 뷰를 사용할 수도 있습니다 ... 확실하지 않습니다.

이 방법은 이전에 어떻게 수행 되었는가, 이렇게하는 방법을 묻는 게시물이 많이 있지만 코드를 넣을 최적의 장소는 없습니다.

감사의 말을 전하면됩니다.

건배

답변

3

이 지금 여기, 주관적인 질문은 주관적인 답변입니다.

먼저이 외부 REST API와 상호 작용하는 모든 코드가 별도의 모듈에 있어야합니다. 예를 들어 사전 API에서 단어 정의를 가져 오는 경우이 API에 대한 모든 코드는 이상적으로 별도의 dictionary 모듈에 있어야하며이 코드를 사용자의보기로 가져올 수 있습니다.

두 번째로, models.py은 응용 프로그램의 데이터 모델을 선언하고이 모델에 대한 연산을 정의해야합니다. 요청/응답주기, 파일 읽기, 템플리트 렌더링, HTTP 호출 또는 기타 다른 작업에 관심을 가져서는 안됩니다. 이 논리에 따라 뷰에서 이러한 REST API 호출을 작성하고 필요한 경우 반환 된 데이터를 모델로 전달해야합니다.

마지막으로 Django 앱에서 REST 호출을 두 번 생각해보십시오. 파이썬은 기본적으로 I/O를 동기화 (차단)합니다. 즉, 앱이 REST 호출이 끝나기를 기다리는 동안 들어오는 HTTP 요청을 처리 할 수 ​​없다는 것을 의미합니다. 너무 많은 사용자가 없어도 문제는 아니지만 확장해야하는 앱의 경우 유의해야 할 사항입니다. 파이썬을위한 비동기 I/O 라이브러리를 살펴볼 수 있습니다.

+0

안녕하세요. 회신 해 주셔서 대단히 감사합니다. 그것은 모델 대 전망에 대한 나의 질문을 정리했다. 비동기에 대한 좋은 지적, 나는 장고 - 셀러리와 일종의 아약스를보고있다. – Richard