पायथन - रूटिंग

रूटिंग URL को सीधे वेब पेज बनाने वाले कोड पर मैप करने की व्यवस्था है। यह वेबपृष्ठ की संरचना के बेहतर प्रबंधन में मदद करता है और साइट के प्रदर्शन में काफी वृद्धि करता है और आगे की वृद्धि या संशोधन वास्तव में सीधे आगे हो जाते हैं। अजगर में रूटिंग को अधिकांश वेब फ्रेम कार्यों में लागू किया जाता है। हम इसके उदाहरण देखेंगेflask इस चैप्टर में वेब फ्रेमवर्क।

फ्लास्क में रूटिंग

route()फ्लास्क में डेकोरेटर का उपयोग किसी फंक्शन में URL को बाँधने के लिए किया जाता है। परिणामस्वरूप जब ब्राउज़र में URL का उल्लेख किया जाता है, तो परिणाम देने के लिए फ़ंक्शन निष्पादित किया जाता है। यहाँ, URL'/hello' नियम के लिए बाध्य है hello_world()समारोह। परिणामस्वरूप, यदि कोई उपयोगकर्ता जाता हैhttp://localhost:5000/ URL, का आउटपुट hello_world() फ़ंक्शन ब्राउज़र में प्रदान किया जाएगा।

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
   return 'Hello Tutorialspoint'
if __name__ == '__main__':
   app.run()

जब हम उपरोक्त कार्यक्रम चलाते हैं, तो हमें निम्न आउटपुट मिलते हैं -

* Serving Flask app "flask_route" (lazy loading)
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [06/Aug/2018 08:48:45] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [06/Aug/2018 08:48:46] "GET /favicon.ico HTTP/1.1" 404 -
127.0.0.1 - - [06/Aug/2018 08:48:46] "GET /favicon.ico HTTP/1.1" 404 -

हम ब्राउज़र खोलते हैं और URL की ओर इशारा करते हैं http://localhost:5000/ फ़ंक्शन के परिणाम को देखने के लिए निष्पादित किया जा रहा है।

URL चर का उपयोग करना

फ्लाई पर URLS बनाने के लिए हम मार्ग का उपयोग करके URL चर पर से गुजर सकते हैं। इसके लिए हम url_for () फ़ंक्शन का उपयोग करते हैं जो फ़ंक्शन के नाम को पहले तर्क के रूप में और शेष तर्कों को URL नियम के चर भाग के रूप में स्वीकार करता है।

नीचे दिए गए उदाहरण में हम फ़ंक्शन नामों को url_for फ़ंक्शन के तर्क के रूप में पास करते हैं और उन पंक्तियों को निष्पादित करने पर परिणाम का प्रिंट आउट लेते हैं।

from flask import Flask, url_for
app = Flask(__name__)
@app.route('/')
def index(): pass
@app.route('/login')
def login(): pass
@app.route('/user/
      
       ') def profile(username): pass with app.test_request_context(): print url_for('index') print url_for('index', _external=True) print url_for('login') print url_for('login', next='/') print url_for('profile', username='Tutorials Point') 
      

जब हम उपरोक्त कार्यक्रम चलाते हैं, तो हमें निम्न आउटपुट मिलते हैं -

/
http://localhost/
/login
/login?next=%2F
/user/Tutorials%20Point

रीडायरेक्ट

हम रूटिंग का उपयोग करके किसी अन्य URL पर उपयोगकर्ता को पुनर्निर्देशित करने के लिए रीडायरेक्ट फ़ंक्शन का उपयोग कर सकते हैं। हम नए URL का उल्लेख फ़ंक्शन के वापसी मान के रूप में करते हैं, जो उपयोगकर्ता को पुनर्निर्देशित करना चाहिए। यह तब मददगार होता है जब हम मौजूदा वेबपेज को संशोधित करते समय उपयोगकर्ताओं को एक अलग पेज पर अस्थायी रूप से डायवर्ट करते हैं।

from flask import Flask, abort, redirect, url_for
app = Flask(__name__)
@app.route('/')
def index():
    return redirect(url_for('login'))
@app.route('/login')
def login():
    abort(401)
#    this_is_never_executed()

जब उपरोक्त कोड निष्पादित किया जाता है, तो आधार URL लॉगिन पृष्ठ पर जाता है जो गर्भपात फ़ंक्शन का उपयोग करता है ताकि लॉगिन पृष्ठ के लिए कोड कभी भी निष्पादित न हो।