TurboGears - Metode HTTP

Protokol Http adalah fondasi komunikasi data di world wide web. Metode pengambilan data yang berbeda dari URL yang ditentukan ditentukan dalam protokol ini. Tabel berikut merangkum berbagai metode http -

Sr.No. Metode & Deskripsi HTTP
1

GET

Mengirim data dalam bentuk tidak terenkripsi ke server. Metode paling umum.

2

HEAD

Sama seperti GET, tetapi tanpa isi respons

3

POST

Digunakan untuk mengirim data formulir HTML ke server. Data yang diterima dengan metode POST tidak di-cache oleh server.

4

PUT

Mengganti semua representasi saat ini dari sumber daya target dengan konten yang diunggah.

5

DELETE

Menghapus semua representasi saat ini dari sumber daya target yang diberikan oleh URL

Membuat Formulir HTML

Mari kita membuat Formulir HTML dan mengirim data formulir ke URL. Simpan skrip berikut sebagai 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>

Data yang dimasukkan dalam formulir ini harus diserahkan ke ‘/login’ URL. Sekarang buat fungsi pengontrolloginpage() dan tampilkan halaman html di atas padanya.

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

Untuk menerima data formulir, berikan a login()controller, yang memiliki atribut bentuk sebagai parameternya. Sini‘nm’ adalah nama field input teks pada form login, sama digunakan sebagai parameter fungsi login ().

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

Seperti yang terlihat, data yang diterima dari form login dikirim ke template sample.html (digunakan sebelumnya). Ini diurai oleh aGenshi template engine untuk menghasilkan keluaran berikut -

Metode POST

Ketika formulir HTML menggunakan metode POST untuk mengirimkan data ke URL dalam atribut tindakan, data formulir tidak diekspos di URL. Data yang disandikan diterima di adictargumen dengan fungsi pengontrol. **kw Argumen di bawah ini adalah objek kamus yang menyimpan data.

Formulir HTML berisi dua bidang teks masukan.

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

Itu marks() pengontrol menerima data formulir dan mengirimkannya ke sample.htmltemplate. Kode untukroot.py adalah sebagai berikut -

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

Terakhir, template sample.html adalah sebagai berikut -

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

Mulai server (jika belum berjalan)

Gearbox server –reload –debug

Memasukkan http://localhost::8080/marksform di browser

Itu sample.html akan membuat keluaran berikut -