FastAPI 作为 Windows 服务是 运行 但无法进入 127.0.0.1:5000

FastAPI as a Windows service is running but can't get in 127.0.0.1:5000

所以,我试图 运行 FastAPI 作为 windows 服务。我在本地服务器中以编程方式尝试了代码 witout uvicorn 到 运行。它运作良好。但是,以编程方式将 运行 作为服务启动,运行 服务但未使用浏览器在本地服务器中获取输出。我参考了这个

这是我的main.py代码

from fastapi import FastAPI
from pydantic import BaseModel
from typing import Optional

import uvicorn

app = FastAPI()

fakedb = []

class Course(BaseModel):
    id: int
    name: str
    price: float
    is_early_bird: Optional[bool] = None

@app.get("/")
def read_root():
    return {"greetings": "Welocome to Shubbak"}

@app.get("/courses")
def get_courses():
    return fakedb

@app.get("/courses/{course_id}")
def get_a_course(course_id: int):
    course = course_id - 1
    return fakedb[course]

@app.post("/course")
def add_course(course: Course):
    fakedb.append(course.dict())
    return fakedb[-1]

@app.delete("/courses/{course_id}")
def delete_course(course_id:int):
    fakedb.pop(course_id-1)
    return{"task": "deletion success"}

if __name__ == "__main__":
    uvicorn.run("main:app", host="127.0.0.1", port=5000, reload=True)

好的,我找到了解决方案。

步骤:

  1. 以管理员身份从 cmd 使用 nssm 安装服务
  2. 插入 python.exe 路径,然后插入 main.py(api 文件名) 路径,最后在参数中输入文件名 main.py。
  3. 安装完成后,启动服务并在浏览器中查看。

查看我的 gitlab link 了解详情。