onderhandel is 'n slim, eenvoudige inhoud onderhandeling vir Python web programme.
Inhoud onderhandeling kan moeilik wees om goed te doen nie. Ideaal gesproke moet jou kode droog wees, en jy sal nie in orde dieselfde domein voorwerp in verskillende formate te stoot herhaal word om die dieselfde ou boiler in verskeie siening metodes. onderhandel help om jou lewe nog makliker deur sodat jy jou mening metodes te versier met formatters wat outomaties vertaal jou domein voorwerpe in die formaat wat versoek deur die kliënt.
Dit is regtig maklik om te gebruik. Hopelik sal hierdie voorbeeld (vir 'n sak aansoek) maak die belangrikste punte duidelik:
# Eerstens, skryf ons 'n paar van formatters wat spesifiseer hoe die te vertaal
# Uitset van die oog funksie in 'n spesifieke formaat. Hier het ons definieer 'n
# Into Formatter en 'n HTML Formatter wat nie 'n sjabloon parameter.
van negotiate.flask invoer Formatter
klas JSONFormatter (Formatter):
& Nbsp; formaat = 'into'
& Nbsp; mime = ['n aansoek / into ']
& Nbsp; def lewer (self, obj):
& Nbsp; terugkeer json.dumps (obj)
klas HTMLFormatter (Formatter):
& Nbsp; formaat = 'into'
& Nbsp; mime = ['teks / html']
& Nbsp; def instel (self, sjabloon):
& Nbsp; self.template = sjabloon
& Nbsp; def lewer (self, obj):
& Nbsp; opbrengs lewer (self.template, ** obj)
# Dan, wanneer die bou van die aansoek, het ons versier die oog funksie met die
# "Onderhandel" versierder, die lys van die formate waarin hierdie siening is beskikbaar.
van negotiate.flask invoer onderhandel
@ App.route ('/ poste /
@ App.route ('/ poste /
negotiate (JSONFormatter)
negotiate (HTMLFormatter, sjabloon = 'post.html')
def view_post (id, formaat = Geen):
& Nbsp; post = Posts.by_id (id)
& Nbsp; as post is Geen:
& Nbsp; aborteer (404)
& Nbsp; indien nie g.user.authorize ('lees', post):
& Nbsp; aborteer (401)
& Nbsp; terugkeer {'post': post}
Die resultaat is 'n siening aksie wat sal 'n HTML-weergawe van die post terug by verstek (dws met Aanvaar: * / * en geen eksplisiete formaat), of indien die Html uitbreiding uitdruklik vermeld, of 'n into weergawe van die post as die .json uitbreiding gegee of aanvaar: aansoek / into word met die versoek gestuur.
Support
onderhandel tans ondersteun Fies en Pilone, hoewel ondersteun vir ander web raamwerke voeg moet redelik maklik. Het jy 'n blik op onderhandel / flask.py en onderhandel / pylons.py die klein hoeveelheid van integrasie kode vereis om te sien
Vereistes :.
- Python
Kommentaar nie gevind