Flask-এ Query Parameters এবং Form Data হ্যান্ডলিং একটি গুরুত্বপূর্ণ বিষয়, যার মাধ্যমে আপনি HTTP রিকোয়েস্ট থেকে ডেটা গ্রহণ ও প্রক্রিয়া করতে পারেন। Flask-এ এই ডেটা সহজেই এক্সেস করা সম্ভব এবং এটি ডাইনামিক ওয়েব অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে।
১. Query Parameters হ্যান্ডলিং
Query Parameters হলো URL এর অংশ, যা ? দিয়ে শুরু হয় এবং একটি বা একাধিক কিপার-ভ্যালু পেয়ার (key-value pair) হিসেবে থাকে। উদাহরণস্বরূপ: http://example.com/search?query=flask&sort=desc
Query Parameters এক্সেস করার জন্য Flask-এ request.args ব্যবহার করা হয়।
উদাহরণ:
from flask import Flask, request
app = Flask(__name__)
@app.route("/search")
def search():
query = request.args.get('query') # 'query' প্যারামিটার থেকে মান নেয়
sort = request.args.get('sort', 'asc') # 'sort' প্যারামিটার থেকে মান নেয়, ডিফল্ট 'asc'
return f"আপনি সার্চ করেছেন: {query}, সোর্ট অর্ডার: {sort}"
if __name__ == "__main__":
app.run(debug=True)
এখানে:
request.args.get('query'): এটি URL-এরqueryপ্যারামিটার থেকে মান নিয়ে আসে।request.args.get('sort', 'asc'): এটিsortপ্যারামিটার থেকে মান নেয়, এবং যদি সেটি না থাকে তবে ডিফল্ট মান'asc'প্রদান করে।
URL উদাহরণ:
http://127.0.0.1:5000/search?query=flask&sort=desc- আউটপুট: "আপনি সার্চ করেছেন: flask, সোর্ট অর্ডার: desc"
http://127.0.0.1:5000/search?query=python- আউটপুট: "আপনি সার্চ করেছেন: python, সোর্ট অর্ডার: asc"
২. Form Data হ্যান্ডলিং
Form Data হলো সেই ডেটা যা HTML ফর্মের মাধ্যমে সাবমিট করা হয়। Flask-এ Form Data এক্সেস করার জন্য request.form ব্যবহার করা হয়। এটি সাধারণত POST অথবা PUT HTTP মেথডের মাধ্যমে প্রেরিত হয়।
উদাহরণ:
from flask import Flask, request, render_template_string
app = Flask(__name__)
@app.route("/submit", methods=["GET", "POST"])
def submit_form():
if request.method == "POST":
username = request.form["username"] # ফর্ম থেকে 'username' প্যারামিটার এক্সেস
password = request.form["password"] # ফর্ম থেকে 'password' প্যারামিটার এক্সেস
return f"আপনার নাম: {username}, পাসওয়ার্ড: {password}"
return '''
<form method="post">
নাম: <input type="text" name="username"><br>
পাসওয়ার্ড: <input type="password" name="password"><br>
<input type="submit" value="সাবমিট">
</form>
'''
if __name__ == "__main__":
app.run(debug=True)
এখানে:
request.form["username"]: এটি HTML ফর্ম থেকেusernameফিল্ডের মান নিয়ে আসে।request.form["password"]: এটি HTML ফর্ম থেকেpasswordফিল্ডের মান নিয়ে আসে।
ব্রাউজার রিকোয়েস্ট:
- প্রথমে
/submitপেজে যান, যেখানে একটি ফর্ম থাকবে। - ফর্মে কিছু ডেটা পূরণ করুন এবং সাবমিট করুন।
- তারপর, আপনি "আপনার নাম: [username], পাসওয়ার্ড: [password]" আউটপুট দেখতে পাবেন, যেখানে [username] এবং [password] ফর্মে প্রদান করা মান।
৩. Query Parameters এবং Form Data একসাথে ব্যবহার
আপনি একই রাউটে Query Parameters এবং Form Data একসাথে ব্যবহার করতে পারেন। Flask দুটি ভিন্ন ধরনের রিকোয়েস্ট থেকে ডেটা সংগ্রহ করার জন্য প্রস্তুত।
উদাহরণ:
from flask import Flask, request
app = Flask(__name__)
@app.route("/profile", methods=["GET", "POST"])
def profile():
if request.method == "POST":
name = request.form["name"]
age = request.form["age"]
return f"আপনার নাম: {name}, বয়স: {age}"
user_id = request.args.get("user_id", "অজানা") # Query প্যারামিটার থেকে user_id
return f"আপনার ইউজার আইডি: {user_id}"
if __name__ == "__main__":
app.run(debug=True)
এখানে:
request.args.get("user_id"): Query প্যারামিটার থেকেuser_idএক্সেস করা হচ্ছে।request.form["name"]: POST রিকোয়েস্ট থেকে Form Data এক্সেস করা হচ্ছে।
উদাহরণ URL:
http://127.0.0.1:5000/profile?user_id=1234- আউটপুট: "আপনার ইউজার আইডি: 1234"
ফর্ম সাবমিট:
- ফর্ম সাবমিট করলে:
- আউটপুট: "আপনার নাম: [name], বয়স: [age]"
৪. File Upload Handling
Flask-এ ফাইল আপলোডের জন্য request.files ব্যবহার করা হয়। আপনি একটি ফর্ম ব্যবহার করে ফাইল আপলোড করতে পারেন এবং সেই ফাইলটি Flask-এ প্রক্রিয়া করতে পারেন।
উদাহরণ:
from flask import Flask, request
app = Flask(__name__)
@app.route("/upload", methods=["GET", "POST"])
def upload_file():
if request.method == "POST":
file = request.files["file"] # ফাইল ফর্ম থেকে 'file' প্যারামিটার এক্সেস
file.save(f"./uploads/{file.filename}") # ফাইল সেভ করা
return f"ফাইল {file.filename} সেভ করা হয়েছে"
return '''
<form method="post" enctype="multipart/form-data">
ফাইল নির্বাচন করুন: <input type="file" name="file"><br>
<input type="submit" value="আপলোড">
</form>
'''
if __name__ == "__main__":
app.run(debug=True)
এখানে:
request.files["file"]: ফর্ম থেকে আপলোড করা ফাইল এক্সেস করা হয়।file.save(): ফাইল সিস্টেমে সেভ করা হয়।
Flask-এ Query Parameters এবং Form Data হ্যান্ডলিং অত্যন্ত সহজ এবং সরল। Query Parameters URL এর অংশ হিসেবে প্যারামিটার গ্রহণ করে, আর Form Data সাধারণত ফর্ম সাবমিট করার সময় ব্যবহৃত হয়। Flask-এ এই ডেটা এক্সেস করা এবং প্রক্রিয়া করা সহজ, এবং এটি ডাইনামিক ওয়েব অ্যাপ্লিকেশন তৈরিতে সাহায্য করে। File Upload Handling এবং GET/POST রিকোয়েস্টের মাধ্যমে ডেটা সংগ্রহের জন্য Flask শক্তিশালী ফিচার সরবরাহ করে।
Read more