मैं यह पता लगाना चाहता हूं कि अनुरोध localhost:5000
या foo.herokuapp.com
मेजबान से आया था और क्या रास्ता अनुरोध किया गया था। फ्लास्क अनुरोध के बारे में मुझे यह जानकारी कैसे मिलेगी?
मैं यह पता लगाना चाहता हूं कि अनुरोध localhost:5000
या foo.herokuapp.com
मेजबान से आया था और क्या रास्ता अनुरोध किया गया था। फ्लास्क अनुरोध के बारे में मुझे यह जानकारी कैसे मिलेगी?
जवाबों:
आप कई Request
क्षेत्रों के माध्यम से url की जाँच कर सकते हैं :
एक उपयोगकर्ता निम्नलिखित URL का अनुरोध करता है:
http://www.example.com/myapplication/page.html?x=y
इस मामले में उपरोक्त विशेषताओं के मूल्य निम्न होंगे:
path /page.html script_root /myapplication base_url http://www.example.com/myapplication/page.html url http://www.example.com/myapplication/page.html?x=y url_root http://www.example.com/myapplication/
आप आसानी से उपयुक्त विभाजन के साथ मेजबान भाग को निकाल सकते हैं।
http://www.example.com/
नहीं http://www.example.com/myapplication/
base_url रिटर्नhttp://www.example.com/myapplication/
एक और उदाहरण:
निवेदन:
curl -XGET http://127.0.0.1:5000/alert/dingding/test?x=y
फिर:
request.method: GET
request.url: http://127.0.0.1:5000/alert/dingding/test?x=y
request.base_url: http://127.0.0.1:5000/alert/dingding/test
request.url_charset: utf-8
request.url_root: http://127.0.0.1:5000/
str(request.url_rule): /alert/dingding/test
request.host_url: http://127.0.0.1:5000/
request.host: 127.0.0.1:5000
request.script_root:
request.path: /alert/dingding/test
request.full_path: /alert/dingding/test?x=y
request.args: ImmutableMultiDict([('x', 'y')])
request.args.get('x'): y
यदि आप पायथन का उपयोग कर रहे हैं, तो मैं अनुरोध वस्तु की खोज करके सुझाव दूंगा:
dir(request)
वस्तु के बाद विधि का समर्थन dict :
request.__dict__
इसे प्रिंट या सेव किया जा सकता है। मैं इसका उपयोग फ्लास्क में 404 कोड लॉग करने के लिए करता हूं:
@app.errorhandler(404)
def not_found(e):
with open("./404.csv", "a") as f:
f.write(f'{datetime.datetime.now()},{request.__dict__}\n')
return send_file('static/images/Darknet-404-Page-Concept.png', mimetype='image/png')
Request.root_url
और वापसी के रूप में मैं केवल<werkzeug.utils.cached_property object>
अच्छी तरह से स्वरूपित के बजाय मिलता हूंhttp://www.example.com/myapplication/
। या यह फीचर लोकलहोस्ट पर काम नहीं करता है?