অনুরোধটি 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)
যেহেতু বস্তুটি পদ্ধতি ডিককে সমর্থন করে :
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/
। অথবা এই বৈশিষ্ট্যটি লোকালহোস্টে কাজ করে না?