자주 묻는 질문: 장고 사용하기¶
왜 DJANGO_SETTINGS_MODULE를 import하는데 에러가 발생하나요?¶
꼭 확인하세요.
당신의 템플릿 언어를 못견디겠습니다. 이걸 써야 하나요?¶
chunky bacon이후로 저희들은 저희 템플릿 엔진이 최고라고 생각해 왔습니다, 하지만 템플릿 언어를 고른다는 것은 종교에 가깝다는 것을 깨달았습니다. 장고는 어떤 템플릿 언어를 요구하지 않습니다. 따라서 Jinja2, Mako 같은 어떤것이라도 자유롭게 사용하실 수 있습니다.
모델/데이터베이스 계층을 사용해야 하나요?¶
아니요. 템플릿 시스템과 같이, 모델/데이터베이스 계층은 나머지 프레임워크와 떼어놓을 수 있습니다.
한 가지 예외사항은, 만약 다른 데이터베이스 라이브러리를 사용한다면, 장고가 자동으로 만드는 관리자 사이트를 사용하지 못할 것입니다. 이 앱은 장고 데이터베이스 계층과 연결되어 있기 때문입니다.
어떻게 이미지나 파일 필드를 사용할 수 있나요?¶
FileField
를 사용하거나, 모델의 ImageField
를 사용하면 간단한 과정입니다.
당신의 설정 파일에, 장고가 업로드 할 디렉토리의 전체 경로를
MEDIA_ROOT`에 정의해야 합니다. ( 성능을 위해서 이 파일들은 데이터베이스에 저장되지 않습니다.). :setting:`MEDIA_URL
기본 공개 URL 디렉토리로 정의하세요. 또한 웹서버의 사용자 계정으로 이 디렉토리에 쓰기가 가능하도록 해야 합니다.Add the
FileField
orImageField
to your model, defining theupload_to
option to specify a subdirectory ofMEDIA_ROOT
to use for uploaded files.당신의 데이터베이스에 저장되는것은 해당 파일에 대한 경로 정보입니다.(
MEDIA_ROOT`에 관한 ). 당신은 장고가 제공하는 :attr:`~django.db.models.fields.files.FieldFile.url
속성을 자주 쓰게 될 것입니다. 예를 들면 만약 당신의 :class:`~django.db.models.ImageField`가 ``mug_shot``이면, 템플릿에서 이미지에 대한 절대 경로를 ``{{ object.mug_shot.url }}``로 얻을 수 있습니다.
어떻게 템플릿에 변수를 사용할 수 있도록 만드나요?¶
가끔은 당신의 템플릿들이 같은 것을 필요로 합니다. 가장 보편적인 예시는 자동적으로 만들어지는 식단입니다. 첫 눈에 보면, 템플릿 context에 공유하는 딕셔너리를 추가하는것이 논리적으로 보입니다.
장고에서 이를 수행하는 가장 좋은 방법은 ``RequestContext``를 사용하는 것입니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 :ref:`subclassing-context-requestcontext`에서 확인할 수 있습니다.