استفاده از jsonify در Flask 3.0

flask 3 jsonify
25 آذر 1403

معرفی jsonify در Flask 3.0

در فریم‌ورک Flask، یکی از توابع مفیدی که برای تبدیل داده‌ها به فرمت JSON استفاده می‌شود، تابع jsonify() است. این تابع به ما کمک می‌کند تا به راحتی داده‌ها را به فرمت JSON تبدیل کنیم و آنها را به کلاینت ارسال کنیم. این کار برای API ها و برنامه‌های تحت وب که نیاز دارند داده‌ها را به صورت ساختارمند و قابل استفاده ارسال کنند، بسیار ضروری است.

استفاده از jsonify() بسیار ساده است. به عنوان مثال فرض کنید که شما قصد دارید اطلاعات یک کاربر را به کلاینت ارسال کنید. به‌جای اینکه خودتان فرمت JSON را دستی ایجاد کنید، می‌توانید از این تابع استفاده کنید تا این کار به سرعت و با دقت انجام شود.

یکی از مزایای دیگر jsonify() این است که به طور خودکار هدرهای مناسب برای فرمت JSON را اضافه می‌کند. این موضوع باعث می‌شود که کلاینت‌ها به درستی بتوانند داده‌ها را دریافت و پردازش کنند. بنابراین با استفاده از این تابع، گام‌های اضافی دریافت و پردازش داده را حذف می‌کنید.

شما می‌توانید چندین شیء را به‌صورت یک‌جا به jsonify() پاس دهید و این تابع آنها را به صورت یک لیست JSON برگشت می‌دهد. این ویژگی، به‌ویژه در مواقعی که نیاز به ارسال چندین مورد داده داریم، بسیار کاربردی است.

نمونه کد استفاده از jsonify

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/user/', methods=['GET'])
def get_user(user_id):
user = {"id": user_id, "name": "Ali"}
return jsonify(user)

if __name__ == '__main__':
app.run(debug=True)

توضیح کد


خط اول: from flask import Flask, jsonify
ما کلاس Flask و تابع jsonify را از ماژول Flask وارد کردیم.

خط دوم: app = Flask(__name__)
ما یک نمونه از کلاس Flask به نام app ساختیم که این مورد به ما کمک می‌کند تا اپلیکیشن وب خود را ایجاد کنیم.

خط چهارم: @app.route('/user/<int:user_id>', methods=['GET'])
این خط به Flask می‌گوید که این تابع get_user() به URL خاصی متصل شود و روش آن GET باشد.

خط ششم: def get_user(user_id):
تعریف تابعی به نام get_user که یک پارامتر به نام user_id می‌گیرد.

خط هفتم: user = {"id": user_id, "name": "Ali"}
اینجا یک دیکشنری به نام user می‌سازیم که شامل شناسه کاربر و اسم او است.

خط هشتم: return jsonify(user)
ما از تابع jsonify() استفاده می‌کنیم تا دیکشنری user را به فرمت JSON تبدیل کنیم و آن را به کلاینت بازگردانیم.

خط دهم: if __name__ == '__main__':
این خط بررسی می‌کند که آیا این فایل به عنوان برنامه اصلی اجرا می‌شود یا خیر.

خط یازدهم: app.run(debug=True)
در اینجا وب‌سرور را با حالت Debug اجرا می‌کنیم تا در صورت بروز خطا، اطلاعات دقیق‌تری دریافت کنیم.

سوالات متداول

؟

jsonify چیه و چه زمانی باید ازش استفاده کنم؟

؟

آیا می‌توانم چندین شی به jsonify ارسال کنم؟

؟

آیا jsonify هدرهای مناسب را هم تنظیم می‌کند؟

؟

چطور می‌توانم خطاها را حتی‌المقدور مدیریت کنم؟