Erste Schritte mit Python Responder v2

Responder v2.0.0 wurde am 19.10.2019 (JST) veröffentlicht! Es ist schon eine Weile her, aber ich habe die Änderungen von Version 1 untersucht, also werde ich sie vorstellen.

Übrigens scheint die Abwärtskompatibilität von Version 1.3.2 gesichert zu sein, sodass es kein Problem gibt, selbst wenn Sie auf Version 2.0.5 aktualisieren.

Zielgruppe

Dieses Mal werden wir nur die Änderungen aus dem v1-System übernehmen. ** Weitere Informationen finden Sie unter Erste Schritte mit Python Responder ... Voruntersuchungen --Qiita! ** ** **

Neuer Router und Schema (und Vorlage)

Die Notation von Schema und Vorlage hat sich geändert! Außerdem wurde ein Refactoring rund um den Router durchgeführt (ehrlich gesagt für Benutzer nicht relevant).

Bisher war nur ein Import erforderlich, und der Vorteil, mit einer Instanz etwas tun zu können, war gut oder schlecht.

import responder

api = responder.API()

"API" war jedoch auch erforderlich, um Schema und Vorlage zu definieren, und die Dateitrennung war ein wenig mühsam. In der neuen Version 2 wurden diese getrennt, was die Dateitrennung etwas erleichtert.

Router Refactoring wurde durchgeführt. Ich glaube, es gibt bisher keine Änderungen auf der Benutzerseite.

Schema Ein neuer Import von responder.ext.schema (z. B. from responder.ext.schema import Schema als OpenAPISchema) ist erforderlich. Dies hängt jedoch immer noch von api ab, wenn die responder.ext.schema.Schema-Instanz generiert wird, und diese Instanz wird beim Definieren jedes Schemas benötigt, sodass die Dateisolierung immer noch schwierig ist ...

Neue Schreibweise


import responder
from responder.ext.schema import Schema as OpenAPISchema
from marshmallow import Schema, fields

contact = {
    "name": "API Support",
    "url": "http://www.example.com/support",
    "email": "[email protected]",
}
license = {
    "name": "Apache 2.0",
    "url": "https://www.apache.org/licenses/LICENSE-2.0.html",
}

api = responder.API()

schema = OpenAPISchema(
    app=api,
    title="Web Service",
    version="1.0",
    openapi="3.0.2",
    docs_route='/docs',  #Bei der Bereitstellung von Dokumenten
    description="A simple pet store",
    terms_of_service="http://example.com/terms/",
    contact=contact,
    license=license,
)

@schema.schema("Pet")
class PetSchema(Schema):
    name = fields.Str()

@api.route("/")
def route(req, resp):
    """A cute furry animal endpoint.
    ---
    get:
        description: Get a random pet
        responses:
            200:
                description: A pet to be returned
                content:  
                    application/json: 
                        schema: 
                            $ref: '#/components/schemas/Pet'                         
    """
    resp.media = PetSchema().dump({"name": "little orange"})

Darüber hinaus scheint dies auch mit der herkömmlichen Schreibmethode zu funktionieren, wird jedoch nicht empfohlen, sodass die vorhandene Schreibmethode weggelassen wird.

Template Zusätzlich zur vorhandenen Vorlagenfunktion kann diese wie folgt implementiert werden:

Neu getrennte Vorlagenfunktion


from responder.templates import Templates

templates = Templates()

@api.route("/hello/{name}/html")
def hello(req, resp, name):
    resp.html = templates.render("hello.html", name=name)

Es unterstützt auch das asynchrone Rendern von "render_async":

Asynchrones Rendern von Vorlagen


from responder.templates import Templates

templates = Templates(enable_async=True)

resp.html = await templates.render_async("hello.html", name=name)

Bestehende Muster sind ebenfalls verfügbar:

Vorhandene Vorlagenfunktion


import responder

api = responder.API()

@api.route("/hello/{name}/html")
def hello_html(req, resp, *, who):
    resp.html = api.template('hello.html', name=name)

Unterstützung für Python 3.8

Ab Version 2.0.5 unterstützt es Python 3.8.

Nachwort

Es ist möglicherweise einfacher, mittelgroße Webanwendungen zu implementieren.

Referenz

Recommended Posts

Erste Schritte mit Python Responder v2
1.1 Erste Schritte mit Python
Erste Schritte mit Python
Erste Schritte mit Python
Einführung in Python-Funktionen
Erste Schritte mit Python Django (1)
Erste Schritte mit Python Django (4)
Erste Schritte mit Python Django (3)
Einführung in Python Django (6)
Erste Schritte mit Python Django (5)
Erste Schritte mit Python-Webanwendungen
Erste Schritte mit Python für PHPer-Klassen
Erste Schritte mit Python Grundlagen von Python
Erste Schritte mit genetischen Python-Algorithmen
Erste Schritte mit Python 3.8 unter Windows
Erste Schritte mit Python für PHPer-Funktionen
Erste Schritte mit Python3 # 1 Grundkenntnisse erlernen
Erste Schritte mit Python Web Scraping Practice
Erste Schritte mit Python für PHPer-Super Basics
Erste Schritte mit Python Web Scraping Practice
Erste Schritte mit Dynamo von Python Boto
Django 1.11 wurde mit Python3.6 gestartet
Erste Schritte mit Android!
Erste Schritte mit apache2
Erste Schritte mit Django 1
Einführung in die Optimierung
Erste Schritte mit Numpy
Erste Schritte mit Spark
Erste Schritte mit Pydantic
Erste Schritte mit Jython
Erste Schritte mit Django 2
Erste Schritte mit Python mit 100 Klopfen bei der Sprachverarbeitung
[Übersetzung] Erste Schritte mit Rust für Python-Programmierer
Erste Schritte mit AWS IoT in Python
Materialien zum Lesen, wenn Sie mit Python beginnen
Einstellungen für den Einstieg in MongoDB mit Python
Übersetzen Erste Schritte mit TensorFlow
Einführung in Tkinter 2: Button
Erste Schritte mit Go Assembly
Erste Schritte mit PKI mit Golang ―― 4
Beginnen Sie mit Python! ~ ② Grammatik ~
Erste Schritte mit Django mit PyCharm
Erste Schritte mit Google App Engine für Python und PHP
Beginnen Sie mit Python! ~ ① Umweltbau ~
Link, um mit Python zu beginnen
Erste Schritte mit Python3 # 3 Versuchen Sie erweiterte Berechnungen mit der import-Anweisung
Einführung in Git (1) History-Speicher
Erste Schritte mit Sphinx. Generieren Sie Docstring mit Sphinx
Erste Schritte mit Sparse Matrix mit scipy.sparse
Erste Schritte mit Julia für Pythonista
Erste Schritte mit Python
Erste Schritte mit Mathematik Beginnen mit Python Programming Challenge Persönliche Notizen-Problem 1-1
Erste Schritte mit der Cisco Spark REST-API
Python gestartet
Beginnend mit USD unter Windows
Beginnen Sie mit Python mit Blender