로더와 렌더링 연결
3753 단어 pystache
묘사
loader 대상을 수동으로 사용해야 합니다.다음 코드를 사용하여 일부 기능을 수행해야 할 것 같습니다. self.loader = pystache.loader.Loader(
extension='txt', search_dirs=search_dirs, file_encoding='utf-8')
self.mustache = pystache.Renderer(
file_extension='txt', search_dirs=search_dirs, file_encoding='utf-8')
이것은 매우 많은 중복이다.나는 내가 말해야 한다고 생각한다. mustache = pystache.Renderer(loader=loader)
토론 #1
어떤 버전의 Pystache를 사용하십니까?또한 당신의 코드는 개발 지점의 내용에 따라 어떻게 변화합니까?예시 코드가 그 내용과 호환되지 않을 것 같습니다.토론 #2
최신 버전 0.5.3을 사용했습니다.왜 당신은 그것이 개발 부서에 작용하지 않는다고 생각합니까?코드를 보아라, 나는 문제가 없다고 생각한다.토론 #셋
잘못 읽었어요. 렌더링에 속성을 설정하고 싶은 줄 알았어요.차이가 많지 않다--renderer.loader = pystache.loader.Loader(extension='txt',
search_dirs=search_dirs,
file_encoding='utf-8')
(이것은 개발 부서에서는 통하지 않고 다른 버전에서도 통하지 않을 수 있다.)일을 건조하게 하기 위해서는 더 좋은 방법은:renderer = pystache.Renderer(file_extension='txt',
search_dirs=search_dirs,
file_encoding='utf-8')
self.loader = renderer.make_loader()
기존의 코드는 거의 거기에 있다. 단지 loader
클래스의 _make_loader
방법은'private '이지'public' 이 아니다이렇게 하면 너에게 쓸모가 있니?Renderer
네, 이것이 제 조언입니다. 사용자가 제공하면 수정토론 #4
이 되돌아오고 설정이 없으면 자신의 렌더링만 구축합니다.너의 방법도 괜찮지만, 나는 매우 이상하다고 생각한다. API 방면.렌더링 구성 요소는 분명히 마운트 프로그램에 의존하는 것이지, 반대로 의존하는 것이 아닙니다. 왜 렌더링을 통해 마운트 프로그램의 생성을 유도하는 것을 허용하지 않습니까?만약 렌더링 머신 이외에 마운트 프로그램을 더 수정하고 싶다면 어떻게 해야 합니까?초기 매개변수?만약 내가 맞춤형 캐리어 부류를 사용하고 싶다면, 등등
Renderer._make_loader
, 다시 말하면 #154는 내가 생각하는 것이다.self.loader
What if I want to use a custom Loader subclass, etc.
그래, 그렇지만 너는 원래의 게시물에 언급하지 않았다.나는 네가 쓴 내용에 대답하는 것이다. 이것은 중복을 줄이기 위해서이다.겸사겸사 여쭙겠습니다. 당신의 용례는 무엇입니까?
토론 #5
템플릿을 렌더링하지 않고 수동으로 열 수 있는 로드 프로그램이 필요합니다.내 직감은 Loader 실례를 만들고 그것을 바탕으로 작업을 하는 것이다.렌더기를 통해 로더를 가져옵니다.make loader ()도 작동할 수 있지만 내게는 어색할 뿐이다.
토론 #6
왜 내가 사용자에게 마운트 프로그램을 설정하는 실례를 설정하는 경향이 있는지 설명해 드리겠습니다.캐리어를 설정하면 API가
토론 #7
,토론 #8
등 속성의 작용이 잘 이해되지 않기 때문이다.로더를 설정하면 이 속성들이 무시됩니까? 아니면 로더가 그것들을 보입니까?그 중 하나를 설정하면 로드 프로그램이 수정됩니까?그것들을 무시하면, 일부 매개 변수나 속성이 다른 매개 변수나 속성을 닫고, 다른 매개 변수나 속성을 추가하면, 이 매개 변수나 속성들은 조합에서 혼란스러워지기 시작할 것이다.또한 로더가 아닌 나중에 이 속성 중 하나가 필요하면 어떻게 해야 합니까?그리고 이 기능이 중복되지 않도록 전달되어야 합니까? 아니면 렌더기가 속성의 로더를 볼 수 있습니까?렌더기는 확실히 마운트 프로그램에 의존하지만, 마운트 프로그램을 세부 사항으로 보는 것이 가장 좋다고 생각합니다.이것이 바로 렌더기가 마운트 프로그램을 구축하는 이유입니다.
만약 사용자가 사용자 정의 로더를 필요로 한다면, 나는 사용자에게 로더가 어떤 로더 종류를 사용해야 하는지 알려주고 싶다.그러나 아직 아무도 이렇게 하라고 요구하지 않았기 때문에 나는 용례가 무엇인지 모르겠다.나도 클래스뿐만 아니라 사용자에게 구체적인 마운트 실례를 설정할 수 있는 용례가 있는지 모르겠다.만약 사용자에게 실례를 설정할 필요가 있다면, 아마도 우리는 하위 클래스로 Rendererer를 만들고 다시 쓸 수 있을 것이다.
search_dirs
방법.이러한 방법은 file_encoding
, make_loader
속성 등을 볼 수 있어 상기 두 번째 단락에서 기술한 속성을 중복하지 않도록 한다.그나저나 렌더류
search_dirs
방법을 본 적이 있습니까?아마도 기존의 방법은'수동으로 템플릿을 열어서 보여주지 않는다'는 용례를 충족시킬 수 있을 것이다file_encoding
캐리어가 공공 API가 아닌 세부 사항을 실현하는 것으로 간주된다면 매우 의미가 있다.만약 내가 완전히 제어하고 싶다면, 나는 수동으로 마운트 프로그램을 만들어야 하며, 렌더링에 내장된 마운트 프로그램은 단지 빠른 방법일 뿐이라고 가정할 뿐이다.나는 템플릿을 불러오는 방법을 놓쳤다.이것이 바로 내가 필요로 하는 것이다.감사합니다!
load_template
멋있어요. 도움이 돼서 반갑습니다!이해해줘서 고마워요!
Reference
이 문제에 관하여(로더와 렌더링 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://github.com/defunkt/pystache/issues/153텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)