Dies ist mein erster Versuch, VSCode für die Python-Entwicklung zu verwenden, und ich stoße auf Probleme, von denen ich keine Ahnung habe, warum.
Das unmittelbare Problem ist, dass ich uvicorn anscheinend nicht dazu bringen kann, meine Browseranfrage an mein fastAPI-Modul weiterzuleiten. Hier sind die relevanten Teile meines Codes:
import uvicorn
from fastapi import FastAPI, Header, HTTPException, Request, status, Response
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import JSONResponse
from pydantic import BaseModel
# initialize (FAST) API framework.
app = FastAPI()
# configure Cross-Origin Resource Sharing configuration
# TODO: Have to enter all the allowed origins
origins = ["*"]
app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
if __name__ == "__main__":
uvicorn.run(app, host="127.0.0.1", port=8000)
################################
# endpoint definitions #
################################
# test endpoint
@app.get("/")
async def test():
x=0
return x
Also setze ich meinen Haltepunkt auf die Anweisung "x = 0" und führe den Debugger aus, und alles ist gut, keine Ausnahmen, und Uvicorn scheint auf eine Anfrage zu warten.
Meine Browseranfrage ist http://127.0.0.1:8000/
Was ich im Terminalfenster sehe ist folgendes:
INFO: Started server process [22764]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: 127.0.0.1:64541 - "GET /incentives HTTP/1.1" 404 Not Found
INFO: 127.0.0.1:64544 - "GET / HTTP/1.1" 404 Not Found
Ich habe die Dokumentation durchgesehen, die ich finden kann, und ein paar Permutationen ausprobiert, aber ohne Erfolg. Ich habe nie den Haltepunkt erreicht.
Ich habe auch versucht, eine „launch.json"-Datei im VSCode-Ordner einzurichten, scheint dann aber nichts zu tun und scheint die uvicron-Aufgabe nicht zu starten oder meine Umgebungsvariablen festzulegen.
Lösung des Problems
Sie haben ein Bestellproblem. Ihre Funktion wird nie definiert, weil sie uvicorn.run
nie zurückkehrt. Definieren Sie die Funktionen ZUERST.
Keine Kommentare:
Kommentar veröffentlichen