logo

Použite jsonify() namiesto json.dumps() vo Flasku

Tu porozumieme funkcii jsonify() vo webovom rámci Flask pre Python, ktorá konvertuje výstup funkcie na objekt odpovede JSON. Je to podobné ako j son.dumps() funkciu v štandardnej knižnici Pythonu, ktorá konvertuje objekt Python na reťazec vo formáte JSON.

čo je jsonify()

Funkcia jsonify() je užitočná v aplikáciách Flask, pretože automaticky nastavuje správne hlavičky odpovedí a typ obsahu pre odpovede JSON a umožňuje vám jednoducho vrátiť údaje vo formáte JSON z vašich obslužných nástrojov smerovania. Vďaka tomu je vytváranie rozhraní API, ktoré vracajú údaje JSON, jednoduchšie a pohodlnejšie.



Syntax funkcie jsonify().

Táto funkcia obsahuje jeden alebo viacero pozičných argumentov, ktoré predstavujú údaje, ktoré sa majú skonvertovať na objekt odpovede JSON, a ľubovoľný počet argumentov kľúčových slov, ktoré sa používajú na prispôsobenie objektu odpovede JSON.

jsonify(*args, **kwargs)

Príklad jsonify() s bez argumentu



Môžete použiť jsonify() bez akýchkoľvek argumentov, v tomto prípade vráti prázdny objekt odpovede JSON s predvoleným stavovým kódom 200 (OK) a predvoleným typom obsahu application/json.

Python3






from> flask>import> Flask, jsonify> app>=> Flask(__name__)> @app>.route(>'/api/users'>)> def> get_users():> >return> jsonify()>

>

>

Príklad jsonify() s argumentmi

V tomto príklade voláme jsonify() s jedným pozičným argumentom (zoznam objektov používateľa), ako aj s dvomi argumentmi kľúčového slova so stavom a mimetype. Argument status sa používa na nastavenie kódu stavu HTTP pre odpoveď a argument mimetype sa používa na nastavenie typu obsahu pre odpoveď.

Python3


kruskalov algoritmus



from> flask>import> Flask, jsonify> app>=> Flask(__name__)> @app>.route(>'/api/users'>)> def> get_users():> >users>=> [{>'id'>:>1>,>'username'>:>'Alice'>}, {>'id'>:>2>,>'username'>:>'Bob'>}]> >return> jsonify(users, status>=>200>, mimetype>=>'application/json'>)>

>

>

metóda jsonify() vo Flasku

V tomto príklade máme aplikáciu Flask s cestou, ktorá vracia zoznam objektov používateľa. Keď klient zadá požiadavku na túto cestu, vykoná sa funkcia get_users() a zoznam užívateľských objektov sa skonvertuje na objekt odpovede JSON pomocou funkcie jsonify(). Tento objekt odpovede JSON sa potom odošle späť klientovi.

Python3




from> flask>import> Flask, jsonify> app>=> Flask(__name__)> @app>.route(>'/'>)> def> get_users():> >print>(>'Using jsonify'>)> >users>=> [{>'id'>:>1>,>'username'>:>'sweety'>},> >{>'id'>:>2>,>'username'>:>'pallavi'>}]> >return> jsonify({>'users'>: users})> if> __name__>=>=> '__main__'>:> >app.run()>

>

>

Výkon:

Použite jsonify() namiesto json.dumps() vo Flasku

metóda jsonify().

metóda json.dumps() vo Flasku

Na rozdiel od toho, ak by ste použili json.dumps() budete musieť sami previesť zoznam užívateľských objektov na reťazec vo formáte JSON a potom nastaviť príslušné hlavičky odpovede a vrátiť odpoveď klientovi manuálne:

Používanie jsonify() je vo všeobecnosti jednoduchšie a pohodlnejšie ako používanie json.dumps(), preto sa odporúča používať jsonify() vždy, keď je to možné v aplikáciách Flask.

Python3




ctc úplná forma

from> flask>import> Flask, Response> import> json> app>=> Flask(__name__)> @app>.route(>'/api/users'>)> def> get_users():> >users>=> [{>'id'>:>1>,>'username'>:>'sweety'>},> >{>'id'>:>2>,>'username'>:>'pandey'>}]> >response>=> Response(> >response>=>json.dumps(users),> >status>=>200>,> >mimetype>=>'application/json'> >)> >return> response> if> __name__>=>=> '__main__'>:> >app.run()>

>

>

Výkon:

http://127.0.0.1:5000/api/users

Použite jsonify() namiesto json.dumps() vo Flasku

Prečo používať jsonify() namiesto json.dumps()

Existuje niekoľko dôvodov, prečo sa v aplikáciách Flask odporúča použiť funkciu jsonify() namiesto funkcie json.dumps():

  • jsonify() je pohodlnejšie a jednoduchšie na použitie ako json.dumps(). jsonify() má jednoduchú a intuitívnu syntax a automaticky spracováva podrobnosti o konverzii vašich údajov na objekt odpovede JSON a ich vrátení klientovi. Na rozdiel od toho json.dumps() vyžaduje, aby ste tieto detaily zvládli sami, čo môže byť časovo náročnejšie a náchylnejšie na chyby.
  • Funkcia jsonify() automaticky nastavuje správne hlavičky odpovedí a typ obsahu pre odpovede JSON, zatiaľ čo json.dumps() nie. To znamená, že pri použití jsonify() nemusíte manuálne nastaviť hlavičku Content-Type na application/json, ale pri použití json.dumps() by ste to museli urobiť manuálne.
  • jsonify() vám umožňuje jednoducho vrátiť údaje vo formáte JSON z vašich obslužných programov smerovania, zatiaľ čo json.dumps() nie. Pomocou jsonify() môžete jednoducho vrátiť údaje, ktoré chcete previesť na objekt odpovede JSON z vášho obslužného programu trasy, a jsonify() sa postará o zvyšok. Pomocou json.dumps() by ste museli sami previesť údaje na reťazec vo formáte JSON a potom ich vrátiť ako súčasť objektu Response.
  • Celkovo môže používanie jsonify() namiesto json.dumps() v aplikáciách Flask zjednodušiť a zjednodušiť vytváranie rozhraní API, ktoré vracajú údaje JSON. Umožňuje vám to zamerať sa na údaje a logiku vašej aplikácie a nemusíte sa starať o podrobnosti formátovania a vracania odpovedí JSON.