English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

قواعد المتغيرات Flask

يمكن بناء URL ديناميكيًا عن طريق إضافة جزء متغير إلى معاملات القاعدة. يتم تسمية هذا الجزء المتغير بـ <variable-name>. يتم تقديم هذا الجزء المتغير كمعامل كلمات مفتاحية لدالة القاعدة.

في هذا المثال، يحتوي معامل ديكورات route() على جزء متغير يضاف إلى جزء الاسم الخاص بـ /hello. لذلك، إذا تم إدخال URL في المتصفح: http://localhost:5000/hello/w3codebox، فإن 'w3codebox' سيتم تقديمه كمعامل لدالة hello().

الرجوع إلى الشيفرة التالية -

# Filename: example.py
# Copyright: 2020 By w3codebox
# Author by: ar.oldtoolbag.com
# Date: 2020-08-08
from flask import Flask
 app = Flask(__name__)
 @app.route('/hello/<name>')
 تعريف hello_name(name):
     تعود 'Hello %s!' % name
 if __name__ == '__main__':
     app.run(debug=True)

احفظ الشيفرة أعلاه في ملف: hello.py، وأحملها من شل بايثون.

ثم، افتح المتصفح وأدخل URL => http://localhost:5000/hello/w3codebox. سترى 'Hello w3codebox' في المتصفح

إضافة إلى جزء الاسم المتغير الخاص بالمتغيرات النصية الافتراضية، يمكن استخدام بناءات محولات التحويل التالية -

الرقمالمحولالوصف
1intقبل الرمز الفاصلة للعدد
2floatبالنسبة للقيم الفائقة
3الطريققبل الرمز الفاصلة للدليل /

في الشيفرة التالية، تم استخدام جميع هذه بناءات الكائنات.

# Filename: example.py
# Copyright: 2020 By w3codebox
# Author by: ar.oldtoolbag.com
# Date: 2020-08-08
from flask import Flask
 app = Flask(__name__)
 @app.route('/blog/<int:postID>')
 تعريف show_blog(postID):
     تعود 'عدد المقالة %d' % postID
 @app.route('/rev/<float:revNo>')
 تعريف revision(revNo):
     تعود 'عدد الاستدلال %f' % revNo
 if __name__ == '__main__':
     app.run()

أحمل الشيفرة أعلاه في شل بايثون. زيارة URL في المتصفح => http://localhost:5000/blog/11.

القيمة الرقمية المحددة كمعامل لدالة show_blog(). يعرض المتصفح الناتج التالي -

# Filename: example.py
# Copyright: 2020 By w3codebox
# Author by: ar.oldtoolbag.com
# Date: 2020-08-08
المقالة 11

في المتصفح أدخل هذا URL - http://localhost:5000/rev/1.1

�数ونية revision() تأخذ عددًا عشريًا كمعامل. ستظهر النتائج التالية في نافذة المتصفح -

# Filename: example.py
# Copyright: 2020 By w3codebox
# Author by: ar.oldtoolbag.com
# Date: 2020-08-08
رقم الاستدلال 1.100000

تعتمد قواعد URL Flask على وحدة مسار Werkzeug. هذا يضمن أن تكون URL المتكونة فريدة، ويتبع النماذج التي وضعتها Apache.

بالنظر إلى القواعد المحددة في السكربت التالي -

# Filename: example.py
# Copyright: 2020 By w3codebox
# Author by: ar.oldtoolbag.com
# Date: 2020-08-08
from flask import Flask
 app = Flask(__name__)
 @app.route('/flask')
 def hello_flask():
     return 'Hello Flask'
 @app.route('/python/')
 def hello_python():
     return 'Hello Python'
 if __name__ == '__main__':
     app.run()

تبدو القاعدةتان متشابهتان، لكن في القاعدة الثانية، تم استخدام شرطة النهاية (/). لذا، أصبحت URL معيارية. لذا، باستخدام /python أو /python/ سيتم إرجاع نفس الناتج. ولكن في الحالة الأولى، URL:/flask/ ستجعل صفحة 404 Not Found.