استفاده از Flask.make_response() در Flask 3.0

flask make response
05 مرداد 1404

راهنمای استفاده از Flask.make_response() در Flask 3.0


سلام! اگر شما با Flask کار می‌کنید، حتماً می‌دانید که این فریم‌ورک وب برای پایتون، چقدر کاربردی و ساده است. امروز قصد داریم به شما درباره تابع make_response() بگوییم که برای ساخت و بازگرداندن پاسخ‌ها در اپلیکیشن‌های Flask بسیار مفید است. این تابع به شما امکان می‌دهد تا پاسخ HTTP را به صورت دقیق‌تر و مخصوصاً در سناریوهایی که نیاز به تنظیمات بیشتری دارید، ایجاد کنید.


اول از همه، باید بدانید که make_response() به شما این امکان را می‌دهد که یک شیء پاسخ ایجاد کنید که می‌تواند شامل موارد مختلفی مانند کوکی ها، سرآیندها و محتوا باشد. پس اگر شما می‌خواهید برنامه‌تان را بهینه‌سازی کنید، این تابع را فراموش نکنید.


استفاده از make_response() بسیار ساده است. شما می‌توانید با استفاده از آن یک رشته ساده، یک دیکشنری، یا حتی یک شیء JSON را به عنوان پاسخ برگردانید. همچنین، می‌توانید ویژگی‌های بیشتری مانند تعیین کد وضعیت HTTP را نیز به پاسخ خود اضافه کنید.


حالا که با مفهوم کلی make_response() آشنا شدید، بیایید با یک مثال عملی شروع کنیم تا بهتر متوجه شوید چگونه این تابع در کار می‌کند. با دیدن کد زیر می‌توانید روند ایجاد یک پاسخ HTTP با استفاده از Flask را یاد بگیرید.


from flask import Flask, make_response

app = Flask(__name__)

@app.route('/response')
def response_example():
# ایجاد یک پاسخ با محتوا
response = make_response('Hello, World!')
# اضافه کردن یک سرآیند به پاسخ
response.headers['X-Custom-Header'] = 'Value'
# تعیین کد وضعیت HTTP
response.status_code = 200
return response

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

توضیح کد


در کد بالا، ابتدا Flask را وارد کرده و یک اپلیکیشن جدید به نام app ایجاد می‌کنیم.
سپس یک روت به نام /response تعریف کرده‌ایم که تابع response_example را فراخوانی می‌کند.
با استفاده از make_response() یک پاسخ جدید با محتوای 'Hello, World!' ایجاد می‌کنیم.
سپس، یک سرآیند سفارشی با نام X-Custom-Header به پاسخ اضافه می‌کنیم.
در نهایت، کد وضعیت HTTP را به 200 تنظیم می‌کنیم و پاسخ را برمی‌گردانیم.
این اپلیکیشن Flask را با app.run(debug=True) اجرا می‌کنیم.


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

؟

Flask.make_response() چیست؟

؟

چگونه می‌توانم از Flask.make_response() استفاده کنم؟

؟

آیا می‌توانم چندین سرآیند با make_response() اضافه کنم؟

؟

چه زمانی باید از make_response() استفاده کنم؟