Flask - วิธี HTTP

โปรโตคอล HTTP เป็นรากฐานของการสื่อสารข้อมูลในเว็บทั่วโลก มีการกำหนดวิธีการดึงข้อมูลจาก URL ที่ระบุไว้ในโปรโตคอลนี้

ตารางต่อไปนี้สรุปวิธีการ http ต่างๆ -

ซีเนียร์ วิธีการและคำอธิบาย
1

GET

ส่งข้อมูลในรูปแบบที่ไม่ได้เข้ารหัสไปยังเซิร์ฟเวอร์ วิธีที่ใช้บ่อยที่สุด

2

HEAD

เหมือนกับ GET แต่ไม่มีเนื้อหาตอบสนอง

3

POST

ใช้เพื่อส่งข้อมูลรูปแบบ HTML ไปยังเซิร์ฟเวอร์ ข้อมูลที่ได้รับโดยวิธี POST จะไม่ถูกแคชโดยเซิร์ฟเวอร์

4

PUT

แทนที่การแสดงปัจจุบันทั้งหมดของทรัพยากรเป้าหมายด้วยเนื้อหาที่อัปโหลด

5

DELETE

ลบการแสดงปัจจุบันทั้งหมดของทรัพยากรเป้าหมายที่กำหนดโดย URL

ตามค่าเริ่มต้นเส้นทางของขวดจะตอบสนองต่อไฟล์ GETคำขอ อย่างไรก็ตามการตั้งค่านี้สามารถเปลี่ยนแปลงได้โดยระบุวิธีการโต้แย้งroute() มัณฑนากร.

เพื่อแสดงให้เห็นถึงการใช้งาน POST วิธีการในการกำหนดเส้นทาง URL ขั้นแรกให้เราสร้างแบบฟอร์ม HTML และใช้ไฟล์ POST วิธีการส่งข้อมูลแบบฟอร์มไปยัง URL

บันทึกสคริปต์ต่อไปนี้เป็น login.html

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

ตอนนี้ป้อนสคริปต์ต่อไปนี้ใน Python shell

from flask import Flask, redirect, url_for, request
app = Flask(__name__)

@app.route('/success/<name>')
def success(name):
   return 'welcome %s' % name

@app.route('/login',methods = ['POST', 'GET'])
def login():
   if request.method == 'POST':
      user = request.form['nm']
      return redirect(url_for('success',name = user))
   else:
      user = request.args.get('nm')
      return redirect(url_for('success',name = user))

if __name__ == '__main__':
   app.run(debug = True)

หลังจากเซิร์ฟเวอร์การพัฒนาเริ่มทำงานให้เปิด login.html ในเบราว์เซอร์ป้อนชื่อในช่องข้อความแล้วคลิก Submit.

ข้อมูลแบบฟอร์มถูกโพสต์ไปยัง URL ในส่วนการดำเนินการของแท็กฟอร์ม

http://localhost/login ถูกจับคู่กับไฟล์ login()ฟังก์ชัน เนื่องจากเซิร์ฟเวอร์ได้รับข้อมูลโดยPOST วิธีการค่าของพารามิเตอร์ 'nm' ที่ได้รับจากข้อมูลแบบฟอร์มได้มาจาก -

user = request.form['nm']

จะถูกส่งผ่านไปยัง ‘/success’URL เป็นส่วนตัวแปร เบราว์เซอร์จะแสดงไฟล์welcome ข้อความในหน้าต่าง

เปลี่ยนพารามิเตอร์ method เป็น ‘GET’ ใน login.htmlและเปิดอีกครั้งในเบราว์เซอร์ ข้อมูลที่ได้รับบนเซิร์ฟเวอร์มาจากไฟล์GETวิธี. ตอนนี้ค่าของพารามิเตอร์ 'nm' ได้รับโดย -

User = request.args.get(‘nm’)

ที่นี่ argsคืออ็อบเจ็กต์พจนานุกรมที่มีรายการคู่ของพารามิเตอร์ฟอร์มและค่าที่สอดคล้องกัน ค่าที่สอดคล้องกับพารามิเตอร์ "nm" จะถูกส่งต่อไปยัง URL "/ success" เหมือนเดิม