You can use the pip command to install:
pip install fastapi uvicorn
For example main.py
File:
from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"Hello": "World"} @app.get("/items/{item_id}") def read_item(item_id: int, q: str = None): return {"item_id": item_id, "q": q} @app.post("/items/") def create_item(item: Item): return item
In this example, a FastAPI application is created and three routes are defined: `/`, `/items/{item_id}` and `/items/`.
The `read_root()` and `read_item()` routes use the `@app.get()` decorator to define the `GET` request handler, while
`create_item()` The route uses the `@app.post()` decorator to define the `POST` request handler.
These routes return different response content, including JSON data and FastAPI model objects.
uvicorn main:app --reload
In this example, we use the `uvicorn` command to start the FastAPI application, listen to the `http://localhost:8000` address, and automatically Reload application code changes. If you need to run the application on a different port, you can use the `--port` parameter to specify the port number.
For example, use curl
or other HTTP client to send a request to your application:
curl http://localhost:8000/ curl http://localhost:8000/items/5?q=somequery curl -X POST http://localhost:8000/items/ -H "Content-Type: application/json" -d '{"name": "item name", "description": "item description"}'
1. If it needs to be called by other machines, you need to specify host
when starting the application. For example: uvicorn main:app --host 192.168.10.8 --port 8888 --reload
2. The meaning of the startup parameter reload
When you use the `--reload` parameter to start the `uvicorn` server, it will monitor changes in the application code and automatically reload the server when the code changes so that you do not have to manually Restart the server.
The above is the detailed content of The steps to use Python Fast API to publish API services are as follows:. For more information, please follow other related articles on the PHP Chinese website!