Query Parameters এবং Form Data হ্যান্ডলিং

Flask এর Request এবং Response Management - ফ্লাস্ক (Flask) - Web Development

289

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 ফিল্ডের মান নিয়ে আসে।

ব্রাউজার রিকোয়েস্ট:

  1. প্রথমে /submit পেজে যান, যেখানে একটি ফর্ম থাকবে।
  2. ফর্মে কিছু ডেটা পূরণ করুন এবং সাবমিট করুন।
  3. তারপর, আপনি "আপনার নাম: [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 শক্তিশালী ফিচার সরবরাহ করে।

Content added By
Promotion

Are you sure to start over?

Loading...