English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يملك فئة Flask وظيفة redirect() لإعادة التوجيه. عند استدعائها، تعود بجسم الاستجابة، ويتم إعادة توجيه المستخدم إلى مكان آخر يحتوي على رمز حالة معين.
يبدو نموذج وظيفة redirect() كالتالي -
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ar.oldtoolbag.com # Date : 2020-08-08 Flask.redirect(location, statuscode, response)
في الوظائف السابقة -
location يستخدم هذا المعرف لتحديد URL الذي يجب عليه أن يتم تحويل الاستجابة إليه. statuscode يستخدم هذا المعرف لإرسال عناوين الرأس إلى المتصفح،وافتراضياً هو 302. response يستخدم هذا المعرف لإنشاء الاستجابة.
هذه رموز الحالة معيارية -
HTTP_300_MULTIPLE_CHOICES HTTP_301_MOVED_PERMANENTLY HTTP_302_FOUND HTTP_303_SEE_OTHER HTTP_304_NOT_MODIFIED HTTP_305_USE_PROXY HTTP_306_RESERVED HTTP_307_TEMPORARY_REDIRECT
رمز الحالة الافتراضي هو 302، وهو يعني 'وجدت' الصفحة.
في هذا المثال، يتم استخدام وظيفة redirect() لعرض صفحة الlogueout مرة أخرى عند فشل محاولة الlogueout.
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ar.oldtoolbag.com # Date : 2020-08-08 from flask import Flask, redirect, url_for, render_template, request # Initialize the Flask application app = Flask(__name__) @app.route('/') def index(): return render_template('log_in.html') @app.route('/login',methods = ['POST', 'GET']) def login(): if request.method == 'POST' and request.form['username'] == 'admin': return redirect(url_for('success')) return redirect(url_for('index')) @app.route('/success') def success(): return 'logged in successfully' if __name__ == '__main__': app.run(debug = True)
يملك فئة Flask وظيفة abort() مع رمز خطأ
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ar.oldtoolbag.com # Date : 2020-08-08 Flask.abort(code)
يستخدم معرف code بالقيمة التالية واحدة -
400 - للطلبات الخاطئة 401 - يستخدم للتحقق من عدم التعرف 403 - ممنوع 404 - غير موجود 406 - غير مقبول 415 - يستخدم لنوع وسائط غير مدعوم 429 - الطلبات الزائدة
هنا يتم إجراء بعض التعديلات الدقيقة على وظيفة login() في الكود المقدم. إذا كنت ترغب في عرض صفحة 'غير مسموح' بدلاً من عرض صفحة الlogueout مرة أخرى، فقم بتبديلها إلى إلغاء الاستدعاء (401).
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ar.oldtoolbag.com # Date : 2020-08-08 from flask import Flask, redirect, url_for, render_template, request, abort app = Flask(__name__) @app.route('/') def index(): return render_template('log_in.html') @app.route('/login',methods = ['POST', 'GET']) def login(): if request.method == 'POST': if request.form['username'] == 'admin': return redirect(url_for('success')) else: abort(401) else: return redirect(url_for('index')) @app.route('/success') def success(): return 'logged in successfully' if __name__ == '__main__': app.run(debug = True)