2011-02-05 3 views
2

많은 뷰에서 재사용해야하는 일부 뷰에서 작성한 많은 함수가 있습니다. 클래스를 만들어 클래스에 넣어야합니까? 그렇다면 장고에서 정확히 어떻게해야합니까? 그러면 새로운 뷰에서 어떻게 호출하고 시작할 수 있습니까?django - 여러보기에서 함수 재사용

답변

7

장고보기는 단지 파이썬 함수입니다. 다른 Python 코드에서와 마찬가지로 다른 Python 함수를 호출 할 수 있습니다. 함수를 .py 파일에 넣고 가져 와서 함수를 호출하십시오.

물론 다른 이유로 함수를 보유 할 클래스를 만드는 것이 합리적 일 수도 있지만 뷰에서 호출 할 필요는 없습니다.

+0

내 장고 프로젝트의 루트에 myfunctions.py라는 파일을 만들고 여기에 내 함수를 넣으면 어떻게 내 뷰에서 호출 할 수 있을까요? – avatar

1

필자의 견해로는 프로젝트에서 널리 사용되는 많은 기능을 가지고 있다면이 모든 것을 별도의 응용 프로그램에 넣는 것이 좋습니다. 이 목적을 위해 'contrib'이라는 모듈을 만듭니다. 나중에이 코드를 유지 보수하는 데 약간의 시간을 할애 할 수 있습니다.

+0

장고에서 내 모듈을 어떻게 만들 수 있습니까? – avatar

+1

사실 모듈 cat은 __init__.py 파일이 들어있는 디렉토리 일 뿐이므로 코드를 넣고 'my_module import something'또는 'put my_module.module_file import something'의 다른 파일에 넣으려는 것과 같이 나중에 가져올 수 있습니다. – rootart

+0

새 뷰에서 함수를 인스턴스화합니까? – avatar

3

해결책은 app 폴더에 myfunctions.py 파일을 만들고보기에서 가져 오는 것입니다. 보기 파일은 다음과 같습니다.

import myfunctions 

def my_view(request): 
    ..... 
    foo = myfunctions.bar() 
    .... 
+0

foo = myfunctions.bar()와 같은 일을했지만, 필자가보기에 myfunctions.bar()를 실행하면됩니다. 지금 foo = myfunctions.bar()를 수행하면 아무 일도 일어나지 않습니다. – avatar

1

장고가 복잡 해 보입니다. Django는 파이썬 응용 프로그램 중 하나이며 파이썬 세계에 살고 있습니다. 예를 들어, library.py 파일을 만들고 필요할 때이 파일을 가져올 수 있습니다 (라이브러리의 함수가 필요한 모듈에서). 데이터베이스에서 데이터를 가져 오기 위해 라이브러리의 함수가 필요하다면, library.py에서 모델을 가져와 사용하십시오.

장고는 "모듈"이라고 생각하지 않습니다. 아키텍처를 생성하면 모듈의 어떤 부분을 정의 할 수 있습니다. 일반적으로이 파일은 .py 파일 내부에있는 파일을 가져올 수있는 간단한 디렉토리입니다.

희망을 얻었습니다.

관련 문제