Heim  >  Artikel  >  Backend-Entwicklung  >  So verwandeln Sie Ihren Python-Code schnell in eine API

So verwandeln Sie Ihren Python-Code schnell in eine API

PHPz
PHPznach vorne
2023-04-14 18:28:102026Durchsuche

Wenn es um die API-Entwicklung geht, denken Sie vielleicht an Django REST Framework, Flask und FastAPI. Ja, sie können zum Schreiben von APIs verwendet werden. Mit dem heute freigegebenen Framework können Sie jedoch vorhandene Funktionen schneller konvertieren API, es ist Sanic.

Sanic-Einführung

Sanic[1] ist ein Python3.7+-Webserver und ein Web-Framework zur Verbesserung der Leistung. Es ermöglicht die Verwendung der in Python 3.5 hinzugefügten Async/Await-Syntax, wodurch Blockierungen effektiv vermieden und die Reaktionsgeschwindigkeit verbessert werden können. Sanic ist bestrebt, eine einfache und schnelle Methode bereitzustellen, die Erstellung und Start integriert, um einen HTTP-Dienst zu implementieren, der leicht zu ändern und zu erweitern ist. Sanic verfügt über sofort einsatzbereite Funktionen, die zum Schreiben, Bereitstellen und Erweitern der Produktion verwendet werden können. Ebene Webanwendung. Derzeit hat es 16,3.000 Sterne auf Github und wird umfassend von der Community unterstützt.

verfügt über die folgenden Funktionen:

  • Eingebauter extrem schneller Webserver
  • Produktionsbereit
  • Extrem hohe Skalierbarkeit
  • Unterstützung von ASGI
  • Einfaches und intuitives API-Design
  • Community-Garantie
  • So transformieren Sie vorhandenen Code schnell Für API

Lassen Sie uns nun sehen, wie der Code in eine API konvertiert wird, wenn in „functions.py“ bereits zwei Funktionen geschrieben sind:

import datetime


def get_datetime():
return datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")


def sum_x_y(x, y):
return x + y

Konvertierung Schreiben Sie einfach eine weitere sanic_app.py für die API:

from sanic import Sanic, json
from functions import get_datetime, sum_x_y

app = Sanic("CodeToAPI")
HOST = "localhost"
PORT = 8000

@app.route("/getdatetime")
async def getdatetime(request):
return json({"now": get_datetime()})

@app.get('/sumxy')
async def sumxy(request):
parameters = request.args
result = sum_x_y(int(parameters['x'][0]), int(parameters['y'][0]))
return json({'result': result})


if __name__ == "__main__":
app.run(host=HOST, port=PORT, debug=False)

Dann führen Sie einfach python sanic_app.py aus, um den API-Dienst zu starten:

So verwandeln Sie Ihren Python-Code schnell in eine API#🎜🎜 ##🎜🎜 #Aus den laufenden Ergebnissen lässt sich erkennen, dass Sanic im Produktionsumgebungsmodus ausgeführt wurde, was sich von anderen Web-Frameworks unterscheidet. Andere Frameworks verfügen über einen integrierten Entwicklungsserver und zeigen deutlich an, dass dieser nur für die Entwicklung verwendet wird. Bei Sanic ist die Situation genau umgekehrt. Der integrierte Server kann direkt in Produktionsumgebungen verwendet werden.

Sie können Curl für Schnittstellentests verwenden:

❯ curl "http://localhost:8000/getdatetime"
{"now":"2022-07-25 06:34:25"}%❯ curl "http://localhost:8000/sumxy?x=12&y=34"
{"result":46}%

Wenn Sie Post verwenden und JSON zum Übergeben von Parametern verwenden, ist es auch einfach:

@app.post('/sumxy')
async def sumxy(request):
parameters = request.json
print(parameters)
result = sum_x_y(int(parameters['x']), int(parameters['y']))
return json({'result': result})

Curl-Test wie folgt:

❯ curl -X 'POST' 'http://localhost:8000/sumxy' -H "Content-Type: application/json" -d '{"x":10,"y":20}'
{"result":30}%

In anderen bereitgestellt

Sanic Zusätzlich zu seinem eigenen Server (in den meisten Fällen wird empfohlen, einen eigenen Server für die Produktion mitzubringen) ist es ist auch mit ASGI kompatibel. Das bedeutet, dass Sie Ihren bevorzugten ASGI-Server zum Ausführen von Sanic verwenden können. Mittlerweile gibt es drei gängige ASGI-Server: Daphne, Uvicorn (das wird von FastAPI verwendet) und Hypercorn.

kann auch auf Gunicorn bereitgestellt werden:

gunicorn myapp:app --bind 0.0.0.0:1337 --worker-class sanic.worker.GunicornWorker

Um statische Dateien zu verarbeiten und Anforderungszugriffsprotokolle aufzuzeichnen, und wenn Sie eine bessere Leistung erzielen möchten, können Sie Nginx als verwenden Proxy wird zum Verarbeiten von Zugriffsprotokollen und statischen Dateien verwendet, was viel schneller ist als die Verwendung von Python.

Das obige ist der detaillierte Inhalt vonSo verwandeln Sie Ihren Python-Code schnell in eine API. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen