I have a simple API function as below,
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"Hello": "World"}
I am starting the server using uvicorn command as,
uvicorn main:app
Since we are not calling any python file directly, it is not possible to call uvicorn command from Pycharm.
So, How can I run the fast-api server using Pycharm?
uvicorn.run(...)In this case, your minimal code will be as follows,
# main.py
import uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"Hello": "World"}
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)
Normally, you'll start the server by running the following command,
python main.py
For this setup, and now, you can set the script path in Pycharm's config
uvicorn commandIn this case, your minimal code will be as follows,
# main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"Hello": "World"}
Normally, you'll start the server by running the following command,
uvicorn main:app --reload
For this setup, and now, you can set the script path in Pycharm's config
uvicornuvicorn binary. You will get the path by executing the command, which uvicorn , inside your environment. (See this image)uvicorn commandYou can do it without adding code to main.py
target to run instead of Script path choose Module nameModule name type uvicornapp.main:app --reload --port 5000Another example, this might be helpful to someone.
# fastapi_demo.py
import uvicorn
from fastapi import FastAPI, Response
app = FastAPI()
@app.route('/', methods=['POST'])
def demo(request):
try:
print(request)
except Exception as e:
print(e)
return Response(content='OK')
if __name__ == '__main__':
uvicorn.run(app='fastapi_demo:app')