Mohssen A Mohssen نشر 30 ديسمبر 2021 أرسل تقرير نشر 30 ديسمبر 2021 في فلاسك يمكنني تمرير بيانات قالب بالشكل التالي: render_template("hello.html", messages={'title':'hello world'}) ويمكنني إستخدام هذه البيانات في القالب نفسه من خلال الكود التالي ليتم عرض كلمة hello: {{ messages['title'] }} لكن ماذا إذا كان هناك مسار يؤدي إلى عرض نفس القالب: @app.route("/hello") def hello(): # هنا يتم تنفيذ بعض الأكود return render_template("hello.html") إذا أردت أن يتم تنفيذ نفس الأكواد كما في المثال السابق فيجب أن أستعمل الدالة redirect: return redirect("/hello", messages={"title":"hello world"}) لكن يبدو أنه لا يمكن إستخدام redirect لتمرير البيانات، حيث يظهر الكود السابق الخطأ التالي: TypeError: redirect() got an unexpected keyword argument 'messages' هل توجد طريقة لتمرير البيانات أثناء عمل إعادة توجيه redirect؟ 1 اقتباس
1 سامح أشرف نشر 30 ديسمبر 2021 أرسل تقرير نشر 30 ديسمبر 2021 تستطيع أن تقوم بتمرير الرسائل بإستخدام معاملات عنوان URL (تسمى URL parameter) بالشكل التالي: from flask import session, url_for def foo(): messages = json.dumps({"title":"hello world"}) # تحويل الكائن إلى نص return redirect(url_for('hello', messages=messages)) @app.route('/hello') def hello(): messages = request.args['messages'] # لإستعادة الرسائل من الدالة url_for() return render_template("hello.html", messages=json.loads(messages)) أو يمكنك أن تستعمل الجلسة session لتخزين قيمة message في cookie ثم إستخراج قيمة message من داخل هذه الـ cookie في الدالة hello بالشكل التالي: from flask import session, url_for def foo(): messages = json.dumps({"title":"hello world"}) # تحويل الكائن إلى نص session['messages'] = messages # تخزينه في الـ session return redirect(url_for('hello')) @app.route('/hello') def hello(): messages = session['messages'] # لإستعادة الرسائل من الـ session return render_template("hello.html", messages=json.loads(messages)) 1 اقتباس
السؤال
Mohssen A Mohssen
في فلاسك يمكنني تمرير بيانات قالب بالشكل التالي:
ويمكنني إستخدام هذه البيانات في القالب نفسه من خلال الكود التالي ليتم عرض كلمة hello:
لكن ماذا إذا كان هناك مسار يؤدي إلى عرض نفس القالب:
إذا أردت أن يتم تنفيذ نفس الأكواد كما في المثال السابق فيجب أن أستعمل الدالة redirect:
لكن يبدو أنه لا يمكن إستخدام redirect لتمرير البيانات، حيث يظهر الكود السابق الخطأ التالي:
هل توجد طريقة لتمرير البيانات أثناء عمل إعادة توجيه redirect؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.