فلسک یکی از فریمورکهای محبوب پایتون برای توسعه برنامههای وب است. با انتشار نسخههای جدید، ویژگیها و قابلیتهای جدیدی به این فریمورک اضافه میشود که توسعهدهندگان را قادر میسازد نرمافزارهای پیشرفتهتری بسازند. در نسخه 3.0 فلسک، یکی از روشهای دسترسی به اطلاعات درخواستها و اجرای عملیات مربوط به آن، استفاده از تابع request.application()
است. این تابع به شما کمک میکند اطلاعات مربوط به درخواست که به سرور ارسال شده را دریافت و پردازش کنید.
قبل از اینکه به جزئیات این تابع بپردازیم، لازم است بدانیم که فلسک چگونه با درخواستهای HTTP کار میکند. وقتی یک کاربر در مرورگر خود به سروری که با فلسک ساخته شده درخواست ارسال میکند، فلسک به این درخواست گوش میدهد و دادهها را به روشی که برنامه نویس مشخص کرده مورد بررسی قرار میدهد. این دادهها میتوانند شامل اطلاعاتی مانند هدرها، پارامترها و اطلاعات فرم باشند که در تابع request
قابل دسترسی است.
تابع request.application()
به شما اجازه میدهد به دادههای درخواستی به روشی ساختیافته دسترسی پیدا کنید. این تابع بخشی از کلاس Request
در فلسک است و معمولاً در مواردی استفاده میشود که نیاز به مدیریت مستقیم درخواستهای HTTP دارید. به بیان ساده، این تابع مکانیزمی را برای مدیریت اطلاعات درخواستها و پاسخ دادن به کاربر ارائه میدهد.
برای اینکه به عنوان یک توسعهدهنده با این قابلیت آشنا شوید، در ادامه یک مثال ساده از استفاده از تابع request.application()
در یک پروژه فلسک آوردهایم. این مثال نشان میدهد چگونه میتوان به دادههای یک درخواست دسترسی پیدا کرد و آنها را پردازش نمود.
from flask import Flask, request
app = Flask(__name__)
@app.route('/process', methods=['GET', 'POST'])
def process_request():
if request.method == 'POST':
data = request.application().form['user_data']
return f'Successfully received: {data}'
return 'Send a POST request with data'
if __name__ == '__main__':
app.run(debug=True)
کد بالا شامل یک برنامه ساده فلسک است که یک مسیر برای پردازش درخواستها در نظر گرفته شده است.
from flask import Flask, request
این خط برنامهی فلسک و کتابخانهی
request
را وارد میکند.app = Flask(__name__)
یک نمونه از برنامه فلسک ایجاد میکند.
@app.route('/process', methods=['GET', 'POST'])
مسیر
/process
را برای دسترسی به تابع مشخص میکند.def process_request():
تابعی برای پردازش درخواستهای HTTP تعریف میکند.
if request.method == 'POST':
بررسی میکند آیا درخواست POST هست یا خیر.
data = request.application().form['user_data']
اطلاعات فرم را از درخواست دریافت میکند.
return f'Successfully received: {data}'
اطلاعات دریافتی از فرم را به کاربر برمیگرداند.
if __name__ == '__main__':
بررسی میکند که آیا فایل مستقیم اجرا شده است یا خیر.
app.run(debug=True)
سرور را با حالت
debug
اجرا میکند.