ফ্লাস্কে এইচটিটিপি স্থিতির কোড 201 ফেরান


141

আমরা আমাদের এপিআই এর একটিতে ফ্লাস্ক ব্যবহার করছি এবং আমি কেবল ভাবছিলাম যে কেউ যদি এইচটিটিপি প্রতিক্রিয়া 201 ফিরিয়ে আনতে জানত তবে?

404 এর মতো ত্রুটির জন্য আমরা কল করতে পারি:

from flask import abort
abort(404)

তবে 201 এর জন্য পেয়েছি

লুকআপেরর: ২০১২ এর জন্য ব্যতিক্রম নয়

আমি আমার নিজের ব্যতিক্রম তৈরি করতে হবে কি এই দস্তাবেজে?


18
return '', 201
লুক

উত্তর:


158

আপনি এটি সম্পর্কে এখানে পড়তে পারেন

return render_template('page.html'), 201

11
এটি প্রয়োজন page.html... এটি নিজেই কাজ করবে না।
ক্রিস স্ট্রাইজিনস্কি

আমার জন্য এই ধরণের ত্রুটি পরিচালনা (আইআইএস এর পিছনে) কেবল তখনই ঘটে যদি অবৈধ ইউসেজটি ওয়ার্কজেগ.অপত্তিগুলির সন্তান ছিল H এইচটিটিপি এক্সেক্সশন, কোনও সাধারণ ব্যতিক্রম নয়
স্যামুয়েল কারলি

118

আপনি কোনও পোস্ট স্থিতি কোড ফেরত দিতে প্রতিক্রিয়া ব্যবহার করতে পারেন।

> from flask import Response
> return Response("{'a':'b'}", status=201, mimetype='application/json')

2
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত, এটি এটির যাওয়ার উপায়।
লুপসগড

এটি সত্যিই নিখুঁত সমাধান
শাহরিয়ার রহমান জহিন

দুর্দান্ত, এর আগে কখনও ভাবেন না
আরিয়ান সাপুত্র

26

অভাব অনুসারে রিটার্ন স্টেটমেন্টে স্ট্যাটাস কোড প্রেরণের পরামর্শ দেওয়া হয় এবং যদি আপনি এটি কিছু ভেরিয়েবলের মধ্যে সংরক্ষণ করেন

notfound = 404
invalid = 403
ok = 200

এবং ব্যবহার

return xyz, notfound

সময়ের চেয়ে নিশ্চিত হয়ে নিন যে এর ধরণটি int নয়। যেহেতু আমি এই ছোট সমস্যাটির মুখোমুখি হয়েছিলাম এখানেও বিশ্বব্যাপী অনুসরণ করা স্থিতির কোডের তালিকা রয়েছে http://www.w3.org/Potocols/HTTP/HTRESP.html

আশা করি এটা সাহায্য করবে.


17

আপনি করতে পারেন

result = {'a': 'b'}
return jsonify(result), 201

যদি আপনি ত্রুটি কোডের সাথে প্রতিক্রিয়াতে কোনও জেএসওএন ডেটা ফেরত করতে চান তবে প্রতিক্রিয়াগুলি সম্পর্কে এখানে এবং এখানে Make_response API বিবরণের জন্য পড়তে পারেন


5

আপনার ফ্লাস্ক কোডে, আপনার যথাসময়ে MIME টাইপটি আদর্শভাবে নির্দিষ্ট করা উচিত:

return html_page_str, 200, {'ContentType':'text/html'}

return json.dumps({'success':True}), 200, {'ContentType':'application/json'}

... ইত্যাদি


1

প্রতিক্রিয়া প্রেরণের জন্য আপনি ফ্লাস্ক_পি ব্যবহার করতে পারেন

from flask_api import status

@app.route('/your-api/')
def empty_view(self):
    content = {'your content here'}
    return content, status.HTTP_201_CREATED

আপনি এখানে রেফারেন্স পেতে পারেন http://www.flaskapi.org/api-guide/status-codes/


1

এপিআই কীভাবে তৈরি করা হয় তার উপর নির্ভরশীল, সাধারণত একটি 201 (তৈরি) দিয়ে আপনি তৈরি করা রিসোর্স ফিরিয়ে আনবেন। উদাহরণস্বরূপ, যদি এটি কোনও ব্যবহারকারী অ্যাকাউন্ট তৈরি করে থাকে তবে আপনি এমন কিছু করবেন:

return {"data": {"username": "test","id":"fdsf345"}}, 201

নোট করুন পোস্টফিক্সড নম্বরটি হ'ল স্থিতি কোড।

বিকল্পভাবে, আপনি ক্লায়েন্টকে যেমন কোনও বার্তা পাঠাতে চাইতে পারেন:

return {"msg": "Created Successfully"}, 201

0

আমার ক্ষেত্রে এটি কাজ করার জন্য আমাকে উপরের সংমিশ্রণ করতে হয়েছিল

return Response(json.dumps({'Error': 'Error in payload'}), 
status=422, 
mimetype="application/json")

0

সুতরাং, আপনি যদি flask_restfulAPI এর ফেরত দেওয়ার জন্য প্যাকেজটি ব্যবহার করেন তবে 201 এর মতো হয়ে যাবে

def bla(*args, **kwargs):
    ...
    return data, 201

dataডিক, স্ট্রিংয়ের মতো কোনও হ্যাশেবল / জসনসিরিয়িয়েবল মান যেখানে হওয়া উচিত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.