如何使用 Pycharm 运行 fast-api 服务器?
How can I run the fast-api server using Pycharm?
我有一个简单的 API 函数,如下所示,
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"Hello": "World"}
我正在使用 uvicorn
命令启动服务器,
uvicorn main:app
因为我们没有直接调用任何python文件,所以不可能从Pycharm调用uvicorn
命令。
那么,我怎样才能 运行 使用 Pycharm 的快速 api 服务器?
尝试在您的代码中调用 uvicorn。例如:
from fastapi import FastAPI
import uvicorn
app = FastAPI()
@app.get("/")
async def read_root():
return {"Hello": "World"}
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=5000, log_level="info")
方法一:运行 FastAPI 通过调用 uvicorn.run(...)
在这种情况下,您的最小代码如下,
# main.py
<b>import uvicorn</b>
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"Hello": "World"}
<b>if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)</b>
通常,您将通过运行以下命令启动服务器,
python main.py
Pycharm 设置
对于此设置,现在,您可以在 Pycharm 的配置中设置脚本路径
备注
- 脚本路径:FastAPI 脚本的路径
- Python 口译员:选择您的 interpreter/virtual 环境
- 工作目录:您的 FastAPI 项目根目录
方法 2:运行 FastAPI 通过调用 uvicorn
命令
在这种情况下,您的最小代码如下,
# main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"Hello": "World"}
通常,您将通过运行以下命令启动服务器,
uvicorn main:app --reload
Pycharm 设置
对于此设置,现在,您可以在 Pycharm 的配置中设置脚本路径
备注
- 模块名称:设置为
uvicorn
- [可选] 脚本:
uvicorn
二进制文件的路径。您将通过在您的环境中执行命令 which uvicorn
来获取路径。 (See this image)
- 参数:
uvicorn
命令的实际参数
- Python 口译员:选择您的 interpreter/virtual 环境
- 工作目录:您的 FastAPI 项目根目录
不加代码也可以做到main.py
- 在
target to run
而不是 Script path
中选择 Module name
- 在
Module name
中键入 uvicorn
- 在参数中
app.main:app --reload --port 5000
另一个例子,这可能对某人有帮助。
# 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')
我有一个简单的 API 函数,如下所示,
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"Hello": "World"}
我正在使用 uvicorn
命令启动服务器,
uvicorn main:app
因为我们没有直接调用任何python文件,所以不可能从Pycharm调用uvicorn
命令。
那么,我怎样才能 运行 使用 Pycharm 的快速 api 服务器?
尝试在您的代码中调用 uvicorn。例如:
from fastapi import FastAPI
import uvicorn
app = FastAPI()
@app.get("/")
async def read_root():
return {"Hello": "World"}
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=5000, log_level="info")
方法一:运行 FastAPI 通过调用 uvicorn.run(...)
在这种情况下,您的最小代码如下,
# main.py
<b>import uvicorn</b>
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"Hello": "World"}
<b>if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)</b>
通常,您将通过运行以下命令启动服务器,
python main.py
Pycharm 设置
对于此设置,现在,您可以在 Pycharm 的配置中设置脚本路径
备注
- 脚本路径:FastAPI 脚本的路径
- Python 口译员:选择您的 interpreter/virtual 环境
- 工作目录:您的 FastAPI 项目根目录
方法 2:运行 FastAPI 通过调用 uvicorn
命令
在这种情况下,您的最小代码如下,
# main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
return {"Hello": "World"}
通常,您将通过运行以下命令启动服务器,
uvicorn main:app --reload
Pycharm 设置
对于此设置,现在,您可以在 Pycharm 的配置中设置脚本路径
备注
- 模块名称:设置为
uvicorn
- [可选] 脚本:
uvicorn
二进制文件的路径。您将通过在您的环境中执行命令which uvicorn
来获取路径。 (See this image) - 参数:
uvicorn
命令的实际参数 - Python 口译员:选择您的 interpreter/virtual 环境
- 工作目录:您的 FastAPI 项目根目录
不加代码也可以做到main.py
- 在
target to run
而不是Script path
中选择Module name
- 在
Module name
中键入uvicorn
- 在参数中
app.main:app --reload --port 5000
另一个例子,这可能对某人有帮助。
# 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')