TurboGears-서빙 템플릿

HTML 콘텐츠가 브라우저에 반환 될 수 있지만 이벤트는 고급 출력을 위해 항상 템플릿 엔진을 사용하는 것이 좋습니다. 기어 박스에 의해 '빠른 시작'된 전체 스택 프로젝트에서 Genshi는 기본 템플릿 렌더러로 활성화됩니다. 그러나 최소한의 애플리케이션에서는 Genshi (또는 jinja와 같은 다른 템플릿 엔진)를 설치하고 활성화해야합니다. Genshi 템플릿 엔진은 순수한 xhtml로 템플릿을 작성하고 컴파일 시간에 문제를 감지하고 깨진 페이지를 제공하지 않도록 유효성을 검사합니다.

템플릿은 점 표기법을 사용하여 참조됩니다. Hello 프로젝트에서는 템플릿 웹 페이지를 저장하기위한 템플릿 디렉토리가 제공됩니다. 그 후sample.html 로 언급됩니다 hello.templates.sample(언급되지 않은 확장). TurboGears는 노출 데코레이터를 통해이 템플릿을 렌더링하여 컨트롤러 메서드를tg.render_template() 함수.

노출 된 컨트롤러 함수는 Python 사전 객체를 반환합니다. 이 딕셔너리 개체는 연결된 템플릿에 차례로 전달됩니다. 템플릿의 자리 표시자는 사전 값으로 채워집니다.

우선 일반 html 스크립트가있는 웹 페이지를 표시하겠습니다. 노출 된 컨트롤러는null dictionary object HTML 스크립트 내에서 구문 분석 할 데이터를 보내지 않을 것입니다.

샘플 HTML을 만드는 방법

우리의 sample.html아래에 주어진다. 프로젝트의 템플릿 디렉토리에 저장되어 있는지 확인하십시오.

<html>
   <head>
      <title>TurboGears Templating Example</title>
   </head>
	
   <body>
      <h2>Hello, Welcome to TurboGears!.</h2>
   </body>
</html>

더하다 sample() 기능 root.py 그것을 통해 sample.html을 노출하십시오.

@expose("hello.templates.sample")
   def sample(self):
      return {}

URL이 표시되면 브라우저에 다음 결과가 표시됩니다. http://localhost:8080/sample 웹 서버를 시작한 후 입력됩니다.

위에서 언급했듯이 사전 개체는 Genshi 템플릿에 매개 변수 모음으로 전송됩니다. 이 템플릿에는 컨트롤러에서받은 매개 변수로 동적으로 채워지는 '자리 표시 자'가 포함되어 있습니다.

우리가 sample() 샘플 템플릿에 사전 객체를 보내는 함수.

@expose("hello.templates.sample")
   def sample(self,name):
      mydata = {'person':name}
      return mydata

창조하다 sample.html 템플릿 폴더 (templates\sample.html)

<html>
   <head>
      <title>TurboGears Templating Example</title>
   </head>
	
   <body>
      <h2>Hello, my name is ${person}!.</h2>
   </body>
</html>

위의 HTML 코드에서 ${person}자리 표시 자입니다. 시작하다http://localhost:8080/sample?name=MVL브라우저에서 URL로. 이 URL은 다음에 매핑됩니다.sample()루트 컨트롤러의 메서드. 사전 객체를 반환합니다. 템플릿 디렉토리의 링크 된 템플릿 페이지 sample.html에서 선택합니다. $ {person}은 웹 페이지에서 MVL로 대체됩니다.

컨트롤러 함수에서 HTML 양식 데이터에 액세스하는 것도 가능합니다. HTML 양식은 양식 데이터를 보내는 데 사용합니다.