क्वेरी स्ट्रिंग कैसे प्राप्त करें पर फ्लास्क डॉक्यूमेंटेशन से स्पष्ट नहीं है। मैं नया हूँ, डॉक्स को देखा, नहीं मिला!
इसलिए
@app.route('/')
@app.route('/data')
def data():
query_string=??????
return render_template("data.html")
क्वेरी स्ट्रिंग कैसे प्राप्त करें पर फ्लास्क डॉक्यूमेंटेशन से स्पष्ट नहीं है। मैं नया हूँ, डॉक्स को देखा, नहीं मिला!
इसलिए
@app.route('/')
@app.route('/data')
def data():
query_string=??????
return render_template("data.html")
जवाबों:
from flask import request
@app.route('/data')
def data():
# here we want to get the value of user (i.e. ?user=some-value)
user = request.args.get('user')
पूर्ण URL के रूप में उपलब्ध है request.url
, और क्वेरी स्ट्रिंग के रूप में उपलब्ध है request.query_string
।
यहाँ एक उदाहरण है:
from flask import request
@app.route('/adhoc_test/')
def adhoc_test():
return request.query_string
क्वेरी स्ट्रिंग में पारित एक व्यक्तिगत ज्ञात परम का उपयोग करने के लिए, आप उपयोग कर सकते हैं request.args.get('param')
। यह ऐसा करने का "सही" तरीका है, जहाँ तक मुझे पता है।
ETA: इससे पहले कि आप आगे बढ़ें, आपको खुद से पूछना चाहिए कि आप क्वेरी स्ट्रिंग क्यों चाहते हैं। मुझे कभी भी कच्चे तार में नहीं खींचना पड़ा - फ्लास्क में इसे अमूर्त तरीके से पहुंचाने की व्यवस्था है। जब तक आपके पास सम्मोहक कारण न हो, आपको उनका उपयोग करना चाहिए।
Werkzeug / फ्लास्क के रूप में पहले से ही आप के लिए सब कुछ पार्स। Urlparse के साथ फिर से वही काम करने की आवश्यकता नहीं है:
from flask import request
@app.route('/')
@app.route('/data')
def data():
query_string = request.query_string ## There is it
return render_template("data.html")
अनुरोध और प्रतिक्रिया ऑब्जेक्ट के लिए पूर्ण प्रलेखन Werkzeug में है: http://werkzeug.pocoo.org/docs/rappers/
हम request.query_string का उपयोग करके ऐसा कर सकते हैं।
उदाहरण:
आइए हम view.py पर विचार करें
from my_script import get_url_params
@app.route('/web_url/', methods=('get', 'post'))
def get_url_params_index():
return Response(get_url_params())
आप फ्लास्क ब्लूप्रिंट्स का उपयोग करके इसे और अधिक मॉड्यूलर बनाते हैं - http://flask.pocoo.org/docs/0.10/blueints/
विचार करें कि पहले नाम को क्वेरी स्ट्रिंग / web_url /? First_name = जॉन के एक भाग के रूप में पारित किया जा रहा है
## here is my_script.py
## import required flask packages
from flask import request
def get_url_params():
## you might further need to format the URL params through escape.
firstName = request.args.get('first_name')
return firstName
जैसा कि आप देखते हैं कि यह केवल एक छोटा सा उदाहरण है - आप कई मान प्राप्त कर सकते हैं + उन्हें बना सकते हैं और इसका उपयोग कर सकते हैं या इसे टेम्पलेट फ़ाइल पर पास कर सकते हैं।
मैं यहाँ क्वेरी स्ट्रिंग की तलाश में आया था, क्वेरी स्ट्रिंग से मान प्राप्त करने के तरीके के बारे में नहीं।
request.query_string
कच्चे बाइट स्ट्रिंग के रूप में URL पैरामीटर लौटाता है (Ref 1)।
उपयोग करने का उदाहरण request.query_string
:
from flask import Flask, request
app = Flask(__name__)
@app.route('/data', methods=['GET'])
def get_query_string():
return request.query_string
if __name__ == '__main__':
app.run(debug=True)
आउटपुट:
संदर्भ:
क्वेरी स्ट्रिंग के लिए इस तरह आज़माएँ:
from flask import Flask, request
app = Flask(__name__)
@app.route('/parameters', methods=['GET'])
def query_strings():
args1 = request.args['args1']
args2 = request.args['args2']
args3 = request.args['args3']
return '''<h1>The Query String are...{}:{}:{}</h1>''' .format(args1,args2,args3)
if __name__ == '__main__':
app.run(debug=True)
O'Reilly फ्लास्क वेब डेवेलपमेंट में वर्णित फ्लास्क अनुरोध ऑब्जेक्ट से क्वेरी स्ट्रिंग के प्रत्येक रूप :
से ओ रेली बोतल वेब विकास , और जैसा कि पहले मानन Gouhari ने कहा, पहले आप आयात अनुरोध करने की जरूरत है:
from flask import request
request
फ्लास्क द्वारा एक संदर्भ चर नाम के रूप में उजागर की गई वस्तु है (आपने इसका अनुमान लगाया है) request
। जैसा कि इसके नाम से पता चलता है, इसमें सभी शामिल हैं जानकारी है जो क्लाइंट HTTP अनुरोध में शामिल है। इस ऑब्जेक्ट में कई विशेषताएँ और विधियाँ हैं जिन्हें आप क्रमशः प्राप्त और कॉल कर सकते हैं।
आपके पास काफी कुछ है request
विशेषताएँ हैं जिनमें क्वेरी स्ट्रिंग है जिसमें से चयन करना है। यहां मैं हर उस विशेषता को सूचीबद्ध करूंगा जिसमें किसी भी तरह से क्वेरी स्ट्रिंग, साथ ही उस विशेषता के ओ'रेली पुस्तक से विवरण शामिल है।
पहले वहाँ है args
जो "URL के क्वेरी स्ट्रिंग में पारित सभी तर्कों के साथ एक शब्दकोश है।" इसलिए यदि आप चाहते हैं कि क्वेरी स्ट्रिंग एक शब्दकोश में पार्स की जाए, तो आप कुछ इस तरह करेंगे:
from flask import request
@app.route('/'):
queryStringDict = request.args
(जैसा कि अन्य ने बताया है, आप .get('<arg_name>')
शब्दकोश से एक विशिष्ट मूल्य प्राप्त करने के लिए भी उपयोग कर सकते हैं )
फिर, वहाँ form
विशेषता है, जो है नहीं क्वेरी स्ट्रिंग होते हैं, लेकिन जो एक और विशेषता है कि के हिस्से में शामिल किया गया है करता है क्वेरी स्ट्रिंग जो मैं क्षण भर को सूचीबद्ध करेगा शामिल हैं। सबसे पहले, हालांकि, form
"अनुरोध के साथ सबमिट किए गए सभी फॉर्म फ़ील्ड के साथ एक शब्दकोश है।" मैं कहता हूं कि यह कहने के लिए: फ्लास्क अनुरोध ऑब्जेक्ट में एक और शब्दकोश विशेषता उपलब्ध है जिसे कहा जाता है values
। values
है "एक शब्दकोश है कि जोड़ती मूल्यों में form
और args
।" पुनः प्राप्त करना कुछ इस तरह दिखाई देगा:
from flask import request
@app.route('/'):
formFieldsAndQueryStringDict = request.values
(फिर से, .get('<arg_name>')
शब्दकोश से एक विशिष्ट आइटम प्राप्त करने के लिए उपयोग करें)
एक अन्य विकल्प यह है query_string
कि "कच्चे बाइनरी मान के रूप में URL का क्वेरी स्ट्रिंग भाग।" उस का उदाहरण:
from flask import request
@app.route('/'):
queryStringRaw = request.query_string
फिर एक अतिरिक्त बोनस के रूप full_path
में "URL का पथ और क्वेरी स्ट्रिंग अंश" है। पोर एजम्प्लो:
from flask import request
@app.route('/'):
pathWithQueryString = request.full_path
और अंत में url
, "क्लाइंट द्वारा अनुरोधित पूरा URL" (जिसमें क्वेरी स्ट्रिंग शामिल है):
from flask import request
@app.route('/'):
pathWithQueryString = request.url
हैप्पी हैकिंग :)
यह प्रयोग करके किया जा सकता है request.args.get()
। उदाहरण के लिए यदि आपके क्वेरी स्ट्रिंग में कोई फ़ील्ड है date
, तो इसका उपयोग करके पहुँचा जा सकता है
date = request.args.get('date')
request
फ्लास्क से आयात की सूची में " " जोड़ना न भूलें
from flask import request
request.args.get()
; पुराने प्रश्नों के नए उत्तर में कुछ ऐसा होना चाहिए जिसका पहले उल्लेख नहीं किया गया था।
अगर GET और हमने कुछ क्वेरी पैरामीटर पारित किए हैं तो अनुरोध
fro`enter code here`m flask import request
@app.route('/')
@app.route('/data')
def data():
if request.method == 'GET':
# Get the parameters by key
arg1 = request.args.get('arg1')
arg2 = request.args.get('arg2')
# Generate the query string
query_string="?arg1={0}&arg2={1}".format(arg1, arg2)
return render_template("data.html", query_string=query_string)