django 구조 방울방울
2495 단어 django
드문드문 발견하고 드문드문 기록하기 때문에 전체적으로 혼란스러울 수 있다. 왜냐하면 분명히 단숨에 쓴 것이 아니기 때문이다.
CBV 정보:
먼저 cbv의 전체적인 계승 구조는 정말 아름답지 않다고 말했다여기..
좋아, 하지만 나누어 보면 그래도 틀림없어.
1. 예를 들어 SingleTemplate ResponseMixin, 속성templatename_field(문서를 뒤적거리는 것을 별로 좋아하지 않아서 한 단락의 문서를 다 보는 시간에 많은 코드를 볼 수 있고 여러 페이지의 문서를 볼 수 있다. 만약 공통점이 있다면 우연한 일치이다.)
봐봐 gettemplate_names, 이것이야말로 이 종류의 목적입니다. 템플릿 이름과 경로 논리를 다시 쓰는 것입니다.(원본 코드의 주석이 비교적 많기 때문에 삭제했다. 간략판은 다음과 같다)
class SingleObjectTemplateResponseMixin(TemplateResponseMixin):
template_name_field = None
template_name_suffix = '_detail'
def get_template_names(self):
try:
names = super(SingleObjectTemplateResponseMixin, self).get_template_names()
except ImproperlyConfigured:
names = []
if self.object and self.template_name_field:
name = getattr(self.object, self.template_name_field, None)
if name:
names.insert(0, name)
if isinstance(self.object, models.Model):
names.append("%s/%s%s.html" % (
self.object._meta.app_label,
self.object._meta.model_name,
self.template_name_suffix
))
elif hasattr(self, 'model') and self.model is not None and issubclass(self.model, models.Model):
names.append("%s/%s%s.html" % (
self.model._meta.app_label,
self.model._meta.model_name,
self.template_name_suffix
))
if not names:
raise
return names
11~14줄을 주의하십시오. 이 필드를 정의하면 대상에서 이 필드의 값을 꺼냅니다.
이것은 모든 데이터 줄에 대해 독특한 템플릿을 사용할 수 있다는 것을 의미한다.상상해 보아라, 매 문장마다 자신만의 주제가 있다!좋아, 정말 멋진 디자인이야.
여기에 이름을 남기다.
2. 템플릿 렌더링 정보네가 django를 쓰든 말든.shortcuts.render/render_to_response는 Template Response Mixin의render를 사용합니다. 마지막으로 호출된render는 settings에서 정의한templateloaders의 loader의render 방법입니다.
좋아, 대단해. 우리는 어디에서 템플릿을 찾든지, 이template를 정의하든지loaders(대문자로 쓰세요)는 렌더링 메커니즘을 해결할 수 있습니다.상세한 코드는 관련 내용이 너무 많기 때문에 여기에 분석을 열거하지 않습니다.
셋째, 이것은django와 무관하고python과 관련이 있습니다.python의 발견dict__아주 큰 문장이 있는데, 그야말로 못하는 것이 없다. 그래, 여기는 물이 매우 깊다.간단하게 응용할 수 있는 예를 들면 복숭아의 나뭇가지를 사과나무에 놓고 자라도 복숭아가 자란다.(약간 혼란스럽다).
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.