Flask - อาคาร URL
url_for()ฟังก์ชันมีประโยชน์มากสำหรับการสร้าง URL แบบไดนามิกสำหรับฟังก์ชันเฉพาะ ฟังก์ชันยอมรับชื่อของฟังก์ชันเป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์คำสำคัญอย่างน้อยหนึ่งรายการโดยแต่ละอาร์กิวเมนต์จะสอดคล้องกับส่วนตัวแปรของ URL
สคริปต์ต่อไปนี้แสดงให้เห็นถึงการใช้ url_for() ฟังก์ชัน
from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route('/admin')
def hello_admin():
return 'Hello Admin'
@app.route('/guest/<guest>')
def hello_guest(guest):
return 'Hello %s as Guest' % guest
@app.route('/user/<name>')
def hello_user(name):
if name =='admin':
return redirect(url_for('hello_admin'))
else:
return redirect(url_for('hello_guest',guest = name))
if __name__ == '__main__':
app.run(debug = True)
สคริปต์ข้างต้นมีฟังก์ชัน user(name) ซึ่งรับค่าของอาร์กิวเมนต์จาก URL
User() ฟังก์ชันตรวจสอบว่าอาร์กิวเมนต์ได้รับตรงกันหรือไม่ ‘admin’หรือไม่. หากตรงกันแอปพลิเคชันจะถูกเปลี่ยนเส้นทางไปยังไฟล์hello_admin() ฟังก์ชันโดยใช้ url_for()มิฉะนั้นไปที่ไฟล์ hello_guest() ฟังก์ชันส่งผ่านอาร์กิวเมนต์ที่ได้รับเป็นพารามิเตอร์ของแขกไปยังมัน
บันทึกรหัสด้านบนและเรียกใช้จาก Python shell
เปิดเบราว์เซอร์และป้อน URL เป็น - http://localhost:5000/user/admin
การตอบสนองของแอปพลิเคชันในเบราว์เซอร์คือ -
Hello Admin
ป้อน URL ต่อไปนี้ในเบราว์เซอร์ - http://localhost:5000/user/mvl
ตอนนี้การตอบสนองของแอปพลิเคชันเปลี่ยนเป็น -
Hello mvl as Guest