TurboGears - Phương thức HTTP

Giao thức Http là nền tảng của giao tiếp dữ liệu trong world wide web. Các phương pháp truy xuất dữ liệu khác nhau từ URL đã chỉ định được xác định trong giao thức này. Bảng sau đây tóm tắt các phương thức http khác nhau:

Sr.No. Phương thức và mô tả HTTP
1

GET

Gửi dữ liệu ở dạng không được mã hóa đến máy chủ. Phương pháp phổ biến nhất.

2

HEAD

Giống như GET, nhưng không có nội dung phản hồi

3

POST

Được sử dụng để gửi dữ liệu biểu mẫu HTML đến máy chủ. Dữ liệu nhận được bằng phương thức POST không được máy chủ lưu vào bộ nhớ đệm.

4

PUT

Thay thế tất cả các bản trình bày hiện tại của tài nguyên đích bằng nội dung đã tải lên.

5

DELETE

Loại bỏ tất cả các đại diện hiện tại của tài nguyên mục tiêu được cung cấp bởi một URL

Tạo một biểu mẫu HTML

Hãy để chúng tôi tạo một Biểu mẫu HTML và gửi dữ liệu biểu mẫu tới một URL. Lưu tập lệnh sau dưới dạng 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>

Dữ liệu đã nhập trong biểu mẫu này sẽ được gửi đến ‘/login’ URL. Bây giờ hãy tạo một hàm điều khiểnloginpage() và hiển thị trang html ở trên với nó.

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

Để nhận dữ liệu biểu mẫu, hãy cung cấp login()bộ điều khiển, có các thuộc tính biểu mẫu làm tham số của nó. Đây‘nm’ là tên của trường nhập văn bản trong biểu mẫu đăng nhập, được sử dụng như một tham số của hàm login ().

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

Như có thể thấy, dữ liệu nhận được từ biểu mẫu đăng nhập đang được gửi đến mẫu sample.html (được sử dụng trước đó). Nó được phân tích cú pháp bởi mộtGenshi template engine để tạo ra kết quả sau:

Phương pháp ĐĂNG

Khi biểu mẫu HTML sử dụng phương thức POST để gửi dữ liệu đến thuộc tính URL trong hành động, dữ liệu biểu mẫu không được hiển thị trong URL. Dữ liệu được mã hóa được nhận trong mộtdictđối số của hàm điều khiển. Các **kw đối số bên dưới là đối tượng từ điển giữ dữ liệu.

Biểu mẫu HTML chứa hai trường văn bản đầu vào.

<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>

Các marks() bộ điều khiển nhận dữ liệu biểu mẫu và gửi nó đến sample.htmlbản mẫu. Mã choroot.py như sau -

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

Cuối cùng, mẫu sample.html như sau:

<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>

Khởi động máy chủ (nếu chưa chạy)

Gearbox server –reload –debug

Đi vào http://localhost::8080/marksform trong trình duyệt

Các sample.html sẽ hiển thị đầu ra sau -