Mohssen A Mohssen نشر 6 ديسمبر 2021 أرسل تقرير نشر 6 ديسمبر 2021 أحاول أن أقوم بعمل API وأريد أن أحصل على البيانات المرسلة من العميل على شكل كود JSON في طلب من نوع POST، حاولت أن أستخدم الكود التالي: @app.route('/api/<id>', methods=['GET', 'POST']) def add_message(id): content = request.json() return content ولكن يبدو أن هذه الطريقة لا تعمل بشكل صحيح، كيف أحصل على كود JSON المرسل في طلب POST في Flask؟ 1 اقتباس
1 سامح أشرف نشر 6 ديسمبر 2021 أرسل تقرير نشر 6 ديسمبر 2021 يمكنك أن تستخدم الخاصية json فقط وليس التابع ()json في الكود الخاص بك، حيث تعيد هذه الخاصية قاموس يعبر عن كود JSON الذي تم إرساله في جسم الطلب request، كالتالي: @app.route('/api/<id>', methods=['GET', 'POST']) def add_message(id): content = request.json # dictionary return content أيضًا تستطيع أن التابع ()get_json للحصول على نفس القيمة: @app.route('/api/<id>', methods=['GET', 'POST']) def add_message(id): content = request.get_json() return content لكن لاحظ أن كلا الطريقتين السابقتين تحتاج إلى إرسال نوع البيانات application/json كترويسة في الطلب header وإلا لن يعمل الكود السابق، ولكي تتخطي هذا النوع الوحصول على البيانات حتى وإن لم يتم إرسال application/json ضمن ترويسة الطلب، فعليك أن تقوم بتمرير الخاصية force بقيمة True إلى التابع get_json: @app.route('/api/<id>', methods=['GET', 'POST']) def add_message(id): content = request.get_json(force=True) return content وفي حالة ظهر لك الخطأ 400 Bad Request response فهذا يعني أن هناك مشكلة في كود JSON المرسل إلى الخادم، ويجب التحقق منه بشكل قبل إرساله إلى الخادم.، ويمكنك أن تستعمل مواقع مثل JSON validator للتحقق من صلاحية الكود أيضًا تستطيع أن تقوم بمرير الخاصية silent بقيمة True إلى التابع get_json لكي لا يظهر أي أخطاء في حالة حدوث مشكلة: @app.route('/api/<id>', methods=['GET', 'POST']) def add_message(id): content = request.get_json(force=True, silent=True) if not content: return "can't parse JSON code" return "done" 2 اقتباس
السؤال
Mohssen A Mohssen
أحاول أن أقوم بعمل API وأريد أن أحصل على البيانات المرسلة من العميل على شكل كود JSON في طلب من نوع POST، حاولت أن أستخدم الكود التالي:
ولكن يبدو أن هذه الطريقة لا تعمل بشكل صحيح، كيف أحصل على كود JSON المرسل في طلب POST في Flask؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.