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 다음 출력을 렌더링합니다-