Flask Tutorials

Flask के redirect() फ़ंक्शन से डेटा सुरक्षित रूप से पास करना

Spread the love

Flask का redirect() फलन उपयोगकर्ताओं को आपके वेब एप्लीकेशन में मार्गदर्शन करने के लिए आवश्यक है। यह आपको विशिष्ट क्रियाओं, जैसे फॉर्म सबमिशन या लॉगिन के बाद उपयोगकर्ताओं को अलग-अलग URL पर सहज रूप से संक्रमित करने की अनुमति देता है। हालाँकि, केवल रीडायरेक्ट करना हमेशा पर्याप्त नहीं होता है; आपको अक्सर नए पेज पर डेटा पास करने की आवश्यकता होती है। यह लेख बताता है कि आपके Flask एप्लीकेशन में पैरामीटर के साथ redirect() का प्रभावी ढंग से उपयोग कैसे करें, सुरक्षा सर्वोत्तम प्रथाओं पर ध्यान केंद्रित करते हुए।

विषयवस्तु सारणी

पैरामीटर पास करने की आवश्यकता को समझना

कोर redirect() फलन अंतर्निहित रूप से सीधे पैरामीटर पास करने का समर्थन नहीं करता है। यह इनपुट के रूप में एक URL स्वीकार करता है। डेटा संचारित करने के लिए, आपको URL पैरामीटर या सर्वर-साइड सत्र प्रबंधन का लाभ उठाना होगा।

विधि 1: गैर-संवेदनशील डेटा के लिए URL पैरामीटर का उपयोग करना

सबसे आम दृष्टिकोण में क्वेरी स्ट्रिंग (प्रश्न चिह्न ‘?’ के बाद का भाग) के रूप में URL में पैरामीटर जोड़ना शामिल है। पैरामीटर एम्परसेंड (‘&’) द्वारा अलग किए गए कुंजी-मान युग्म हैं।


from flask import Flask, render_template, redirect, url_for, request

app = Flask(__name__)

@app.route('/form', methods=['GET', 'POST'])
def my_form():
    if request.method == 'POST':
        name = request.form['name']
        age = request.form['age']
        return redirect(url_for('success', name=name, age=age))
    return render_template('form.html')

@app.route('/success')
def success():
    name = request.args.get('name')
    age = request.args.get('age')
    return f"Success! Name: {name}, Age: {age}"

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

<form method="POST">
    <label for="name">नाम:</label>
    <input type="text" id="name" name="name"><br><br>
    <label for="age">आयु:</label>
    <input type="text" id="age" name="age"><br><br>
    <input type="submit" value="सबमिट करें">
</form>

यह /success?name=John&age=30 जैसे URL बनाता है। url_for पैरामीटर हैंडलिंग को सरल करता है।

विधि 2: संवेदनशील डेटा के लिए Flask सत्रों का उपयोग करना

संवेदनशील डेटा (उपयोगकर्ता ID, प्रमाणीकरण टोकन) के लिए, कभी भी URL पैरामीटर का उपयोग न करें। Flask की सत्र वस्तु सर्वर-साइड संग्रहण प्रदान करती है, जो उपयोगकर्ता के सत्र के साथ डेटा को जोड़ती है।


from flask import Flask, render_template, redirect, url_for, request, session

app = Flask(__name__)
app.secret_key = 'your_secret_key'  # एक मजबूत, यादृच्छिक रूप से उत्पन्न कुंजी से बदलें

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        username = request.form['username']
        # ... प्रमाणीकरण तर्क ...
        if username == "validuser":
            session['username'] = username
            return redirect(url_for('dashboard'))
    return render_template('login.html')

@app.route('/dashboard')
def dashboard():
    username = session.get('username')
    if username:
        return f"स्वागत है, {username}!"
    else:
        return redirect(url_for('login'))

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

महत्वपूर्ण रूप से, एक मजबूत, यादृच्छिक रूप से उत्पन्न secret_key सेट करें। सत्र डेटा एन्क्रिप्शन के लिए यह महत्वपूर्ण है।

सही विधि चुनना

URL में दिखाई देने वाले गैर-संवेदनशील डेटा के लिए URL पैरामीटर का उपयोग करें। गोपनीय डेटा के लिए जो निजी रहना चाहिए, सत्रों का उपयोग करें।

यह मार्गदर्शिका Flask के redirect() फलन के साथ सुरक्षित और कुशल पैरामीटर पासिंग प्रदर्शित करता है, जिससे एक सहज और सुरक्षित उपयोगकर्ता अनुभव सुनिश्चित होता है।

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *