TurboGears-HTTP 메소드

Http 프로토콜은 월드 와이드 웹에서 데이터 통신의 기초입니다. 지정된 URL에서 데이터를 검색하는 다른 방법이이 프로토콜에 정의되어 있습니다. 다음 표는 다양한 http 방법을 요약 한 것입니다.

Sr. 아니. HTTP 방법 및 설명
1

GET

암호화되지 않은 형식의 데이터를 서버에 보냅니다. 가장 일반적인 방법.

2

HEAD

GET과 동일하지만 응답 본문이 없음

POST

HTML 양식 데이터를 서버로 보내는 데 사용됩니다. POST 방식으로 수신 된 데이터는 서버에서 캐시되지 않습니다.

4

PUT

대상 리소스의 모든 현재 표현을 업로드 된 콘텐츠로 바꿉니다.

5

DELETE

URL이 제공하는 대상 자원의 현재 표시를 모두 제거합니다.

HTML 양식 만들기

HTML 양식을 만들고 양식 데이터를 URL로 보내겠습니다. 다음 스크립트를 login.html로 저장하십시오.

<html>
   <body>
      <form action = "http://localhost:8080/login" method = "get">
         <p>Enter Name:</p>
         <p><input type = "text" name = "nm" /></p>
         <p><input type = "submit" value = "submit" /></p>
      </form>
   </body>
</html>

이 양식에 입력 된 데이터는 ‘/login’ URL. 이제 컨트롤러 함수를 만듭니다.loginpage() 위의 html 페이지를 노출합니다.

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

양식 데이터를 받으려면 login()매개 변수로 양식 속성이있는 컨트롤러. 여기‘nm’ 로그인 양식의 텍스트 입력 필드 이름이며 login () 함수의 매개 변수로 사용됩니다.

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

보시다시피 로그인 폼에서받은 데이터는 sample.html 템플릿 (이전에 사용)으로 보내지고 있습니다. 그것은 a에 의해 파싱됩니다Genshi template engine 다음 출력을 생성하려면-

POST 방법

HTML 양식이 POST 메소드를 사용하여 URL in action 속성으로 데이터를 발송할 때 양식 데이터는 URL에 노출되지 않습니다. 인코딩 된 데이터는dict컨트롤러 함수에 의한 인수. **kw 아래의 인수는 데이터를 보관하는 사전 객체입니다.

HTML 양식에는 두 개의 입력 텍스트 필드가 있습니다.

<html>
   <body>
	
      <form action = "http://localhost:8080/marks" method = "post">
         <p>Marks in Physics:</p>
         <p><input type = "text" name = "phy" /></p>
         <p>Marks in Maths:</p>
         <p><input type = "text" name = "maths" /></p>
         <p><input type = "submit" value = "submit" /></p>
      </form>
		
   </body>	
</html>

그만큼 marks() 컨트롤러는 양식 데이터를 수신하여 sample.html주형. 코드root.py 다음과 같습니다-

from hello.lib.base import BaseController
from tg import expose, request

class RootController(BaseController):
   @expose("hello.templates.marks")
   def marksform(self):
      return {}
		
   @expose("hello.templates.sample")
   def marks(self, **kw):
      phy = kw['phy']
      maths = kw['maths']
      ttl = int(phy)+int(maths)
      mydata = {'phy':phy, 'maths':maths, 'total':ttl}
      return mydata

마지막으로 sample.html 템플릿은 다음과 같습니다.

<html>
   <head>
      <title>TurboGears Templating Example</title>
   </head>
	
   <body>
      <h2>Hello, Welcome to TurboGears!.</h2>
      <h3>Marks in Physics: ${phy}.</h3>
      <h3>Marks in Maths: ${maths}.</h3>
      <h3>Total Marks: ${total}</h3>
   </body>
	
</html>

서버 시작 (아직 실행 중이 아닌 경우)

Gearbox server –reload –debug

시작하다 http://localhost::8080/marksform 브라우저에서

그만큼 sample.html 다음 출력을 렌더링합니다-