derėtis yra protingas, paprastas turinys derybos Python interneto programų.
Turinio derybos gali būti sunku padaryti gerai. Geriausia, kad jūsų kodas turi būti sausas ir jums nebus kartoti tą patį seną Standartiniai keliomis vaizdo metodus siekiant išmeta tą patį domeno objektą skirtingais formatais. derėtis padeda padaryti jūsų gyvenimą dar lengviau leidžia jums papuošti jūsų nuomone metodus formatters kad automatiškai išversti savo domenų objektus į formatą, reikalingą, kad klientui.
Tai tikrai paprasta naudoti. Tikimės, kad šis pavyzdys (už Flask taikymo) daro pagrindiniai punktai aiškūs:
# Pirma, mes parašyti formatters pora, kad nurodyti, kaip išversti
# Išėjimas vaizdo funkciją į tam tikrą formatą. Čia mes apibrėžiame
# JSON formatavimo ir HTML formatavimo, kad mano šabloną parametrą.
nuo negotiate.flask importo formatavimo
klasė JSONFormatter (Formatuotojas):
& Nbsp; formatas = 'JSON "
& Nbsp; mimeTypes = ['application / JSON']
& Nbsp; def padaryti (savarankiškai, obj):
& Nbsp; grąžos json.dumps (obj)
klasė HTMLFormatter (Formatuotojas):
& Nbsp; formatas = 'JSON "
& Nbsp; mimeTypes = ['text / html']
& Nbsp; def konfigūruoti (savarankiškai, šablonas):
& Nbsp; self.template = šablonas
& Nbsp; def padaryti (savarankiškai, obj):
& Nbsp; sugrįžti padaryti (self.template ** obj)
# Tada, kai pastato prašymą, mes papuošti vaizdo funkciją
# "Derėtis" dekoratorius, kuriame formatus, kurioje šis požiūris yra prieinama.
nuo negotiate.flask importo derėtis
@ App.route ('/ pranešimų /
@ App.route ('/ pranešimų /
negotiate (JSONFormatter)
negotiate (HTMLFormatter, šablonas = 'post.html)
Def view_post (id, formatas = Nėra)
& Nbsp; post = Posts.by_id (id)
& Nbsp; jei pranešimas yra Nėra:
& Nbsp; nutraukti (404)
& Nbsp; jei ne g.user.authorize (skaityti "postą):
& Nbsp; nutraukti (401)
& Nbsp; grąža {"post: pranešimas}
Rezultatas yra vaizdas veiksmų, kad sugrįš HTML versija paštu pagal nutylėjimą (ty Priimti: * / * ir aiškaus formato), arba jei .html plėtinys yra aiškiai nurodyta, ar JSON versija paštu, jei .json pratęsimo atiduotas arba Priimti: application / JSON siunčiamas su prašymu.
Pagalba
derėtis šiuo metu palaiko kolba ir pilonai, nors įtraukti paramą už kitų interneto sistemas turėtų būti gana lengva. Pažvelkite ne derėtis / flask.py ir derėtis / pylons.py pamatyti nedidelį kiekį integracijos kodas reikalingas
Reikalavimai :.
- Python
Komentarai nerastas