English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يمكن بناء 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' في المتصفح
إضافة إلى جزء الاسم المتغير الخاص بالمتغيرات النصية الافتراضية، يمكن استخدام بناءات محولات التحويل التالية -
الرقم | المحول | الوصف |
1 | int | قبل الرمز الفاصلة للعدد |
2 | float | بالنسبة للقيم الفائقة |
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.