negotiate

Screenshot der Software:
negotiate
Softwarebeschreibung:
Version: 0.0.1
Upload-Datum: 14 Apr 15
Entwickler: Nick Stenning
Lizenz: Frei
Popularität: 2

Rating: nan/5 (Total Votes: 0)

zu verhandeln ist eine intelligente, einfache Content-Negotiation für Python-Web-Anwendungen.
Content-Negotiation kann schwierig, gut zu tun. Im Idealfall sollten Sie Ihren Code DRY, und Sie würden nicht immer wieder dieselben alten Textvorschlag in mehrere Ansichtsmethoden, um die gleiche Domain-Objekt in verschiedenen Formaten zu emittieren. verhandeln hilft Ihnen das Leben noch einfacher, indem Sie die Ansicht Methoden mit Formatierer, die automatisch in die vom Kunden gewünschten Format übersetzen Ihre Domain-Objekte zu schmücken.
Es ist wirklich einfach zu bedienen. Hoffentlich wird dies beispielsweise (für eine Flasche Anwendung) stellt die wichtigsten Punkte auf der Hand:
# Zuerst schreiben wir ein paar Formatierer, die angeben, wie das übersetzen
# Ausgabe des View-Funktion in einem bestimmten Format. Hier definieren wir ein
# JSON-Formatierer und eine HTML-Formatierer, die ein Template-Parameter übernimmt.
von negotiate.flask Import Formatter
Klasse JSONFormatter (Formatter):
& Nbsp; format = 'json'
& Nbsp; mimetypes = ['application / json']
& Nbsp; def machen (self, obj):
& Nbsp; Rück json.dumps (obj)
Klasse HTMLFormatter (Formatter):
& Nbsp; format = 'json'
& Nbsp; mimetypes = ['text / html']
& Nbsp; def konfigurieren (self, Vorlage):
& Nbsp; self.template = Vorlage
& Nbsp; def machen (self, obj):
& Nbsp; zurück render (self.template, ** obj)
# Dann, wenn Erstellen der Anwendung, dekorieren wir die View-Funktion mit der
# "Verhandeln" Dekorateur, in dem die Formate, in denen diese Ansicht zur Verfügung.
von negotiate.flask Import verhandeln
@ App.route ('/ Beiträge / ')
@ App.route ('/ Beiträge / . ")
negotiate (JSONFormatter)
negotiate (HTMLFormatter, template = "post.html ')
def view_post (id, Format = None):
& Nbsp; post = Posts.by_id (id)
& Nbsp; falls Beitrag ist keine:
& Nbsp; abbrechen (404)
& Nbsp; wenn nicht g.user.authorize ("lesen", Post):
& Nbsp; abbrechen (401)
& Nbsp; Rückkehr {'post': Post}
Das Ergebnis ist eine Ansicht, Aktion, die eine HTML-Version des Post standardmäßig zurückgibt (dh mit Accept: * / * und kein explizites Format), oder wenn die Erweiterung .html explizit angegeben, oder ein JSON-Version von der Post, wenn der .json Erweiterung gegeben oder Accept: application / json wird mit der Anforderung gesendet.
Support
verhandeln derzeit unterstützt Flasche und Pylonen, auch wenn die Unterstützung für andere Web-Frameworks sollte recht einfach. Schauen Sie sich auszuhandeln / flask.py und verhandeln / pylons.py um die kleine Menge von Integrationscode erforderlich siehe

Anforderungen .

  • Python

Andere Software von Entwickler Nick Stenning

Honcho
Honcho

20 Feb 15

envmgr
envmgr

20 Feb 15

imaprelay
imaprelay

14 Apr 15

Kommentare zu negotiate

Kommentare nicht gefunden
Kommentar hinzufügen
Schalten Sie auf die Bilder!