FAQ: Django의 사용

왜 DJANGO_SETTINGS_MODULE을 임포팅(importing) 하면 에러가 발생하나요?

아래 내용을 확인하세요:

  • 환경변수 DJANGO_SETTINGS_MODULE는 정규화된 파이썬 모듈 (예: “mysite.settings”)로 설정되어 있습니다.

  • 이 말은 모듈이 sys.path 의 경로상에 있다고 가정한 것 입니다.(이 가정이 맞다면 import mysite.settings가 작동해야합니다.)

  • 이 모듈은 구문오류를 (당연히)포합하고있지 않습니다.

  • 만약 Django의 요청처리기를 사용하지않고, mod_python을 사용한다면 SetEnv;의 사용과 관련된 mod_python 버그를 해결해야합니다 무언가를 하기 위해 Django로부터 어떠한것을 임포트(import)하기전에 말이죠. 아래내용을 따라해보세요:

    os.environ.update(req.subprocess_env)
    

    (req는 mod_python 요청 개체입니다.)

Django의 템플릿 언어가 마음에 들지 않아요. 반드시 그것을 사용해야하나요?

우리는 우리의 템플릿 엔진이 chunky bacon 이후 가장 좋은 것이라고 생각이 들었습니다. 하지만 우리는 템플릿 언어를 선택하는 것이 종교를 선택하는 것에 가까워 진다는 것을 깨닳았습니다. Django는 템플릿 언어 사용을 요구하지 않습니다, 그러므로 ZPT, Cheetah, 혹은 어떤것이든, 자유롭게 사용하세요.

Django의 모델/데이터베이스 계층을 사용해야 하나요?

아닙니다. 템플릿 시스템처럼, 모델/데이터베이스 계층은 프레임 워크의 나머지 부분에서 분리됩니다.

한 가지 예외는: 만약 사용자께서 다른 데이터베이스 라이브러리를 사용하신다면, 사용자께서는 Djanog의 자동 생성된 관리 사이트를 사용할수 없을 것입니다. 그 앱은 Django 데이터베이스 계층에 연결됩니다.

이미지필드와 파일필드는 어떻게 사용하나요?

모델 안에서 FileField 또는 ImageField 사용은 다음의 몇 단계를 따르시면 됩니다:

  1. 설정파일에 있는,:setting:MEDIA_ROOT에 Django로 업로드된 파일들이 저장될 디렉토리의 전체경로를 정의합니다. (성능을 위해, 이 파일들은 데이터베이스에 저장되지 않습니다.) 그 디렉토리의 기본 공용 URL로써 MEDIA_URL을 정의하세요. 웹 서버의 사용자 계정이 이 디렉토리에 쓰기 권한이 있는지 확인해 주세요.
  2. FileFieldImageField를 모델에 추가합니다, 파일들을 업로드할 MEDIA_ROOT의 하위디렉토리를 Django에 알려주기위해 upload_to 옵션을 지정하는 것을 잊지마세요.
  3. 파일의 (MEDIA_ROOT와 상대적인)경로가 데이터베이스에 저장됩니다. 당신은 십중팔구 Django의 편리한 url 속성을 사용하게 될 것입니다. 예를들어, mug_shot란 이름의 ImageField가 있다면, 템플릿에서 {{ object.mug_shot.url }}을 사용하여 이미지의 절대경로를 얻을 수 있습니다.

모든 템플릿에서 사용할수 있는 변수를 어떻게 만들수있을까요?

때때로 사용자의 템플릿은 모두 같은 것을 필요로 합니다. 일반적인 예는 역동적으로 생성된 메뉴일것입니다. 언뜻보기에는, 간단히 템플릿 컨텟스트에 같은 디렉토리를 추가하는것처럼 보입니다.

올바른 해결책은 RequestContext를 사용하는 것입니다. 이것을 하는 방법의 세부사항은 :Subclassing Context: RequestContext를 참고하세요.