windows环境部署FASTAPI

操作上很容易,如果已经安装了python,基本上1分钟就能搞定。

1. 安装python,最好3.7以上。

2. 安装组件 

pip install fastapi uvicorn

3. 新建项目目录,在项目目录中创建main.py文件

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

4. 启动服务

# 本地测试,启动服务
uvicorn main:app --reload

# 作为服务端启动,监听所有地址
uvicorn main:app --host 0.0.0.0 --port 8000

这里main指的是包含FastAPI实例的Python文件名(不包括.py后缀),而app是FastAPI实例的名称。--reload选项使得当代码发生变化时自动重新加载服务器,方便开发阶段使用。此时,你可以在浏览器中访问http://127.0.0.1:8000 或者 http://服务器IP:8000 查看效果。

5. 异常检查

外网访问,注意检查防火墙。

6. 设置开机自动启动

为了让FastAPI服务在Windows服务器开机时自动启动,你可以使用以下几种方法。这里介绍一种简单且直接的方法:通过创建一个任务计划来实现。

1. **创建启动脚本**:
   - 首先,确保你的FastAPI应用有一个可以一键启动的脚本文件(如`start_server.bat`)。这个批处理文件的内容可能如下所示,这个脚本跟main.py放在同一个目录:

@echo off
set "parent_dir=%~dp0"

cd %parent_dir%

python -m uvicorn main:app --host 0.0.0.0 --port 8000

 

2. **打开任务计划程序**:
   - 按下`Win + S`键,输入“任务计划程序”,然后按下回车键打开任务计划程序。

3. **创建基本任务**:
   - 在任务计划程序库中,点击右侧的“创建基本任务...”。
   - 输入任务的名称和描述,例如:“FastAPI Auto Start”。

4. **设置触发器**:
   - 选择“当计算机启动时”作为触发条件,然后点击“下一步”。

5. **设置操作**:
   - 选择“启动程序”作为操作,然后点击“下一步”。
   - 在“程序/脚本”栏中,输入`cmd`。
   - 在“添加参数(可选)”栏中,输入`/c start "" "C:\path\to\your\start_server.bat"`。这里的路径需要指向你之前创建的`.bat`文件的实际位置。注意,`/c`参数告诉命令提示符执行完命令后关闭窗口,而`start ""`用于新开一个命令行窗口运行你的脚本避免因为主窗口关闭导致脚本停止运行。

6. **完成创建**:
   - 确认所有信息无误后,点击“完成”。现在,你已经成功设置了FastAPI服务随系统启动而自动启动的任务。

7. **测试**:
   - 为了验证一切正常工作,你可以尝试重启服务器,检查FastAPI服务是否能够自动启动并对外提供服务。

请注意,如果FastAPI服务需要管理员权限才能正确运行(例如绑定到端口80或443),则在创建任务时需要勾选“使用最高权限运行”选项。这样可以确保任务以足够的权限执行。

### 部署FastAPI应用至Windows生产环境 #### 准备工作 确保已安装适用于Python 3.8以上的版本,因为这是运行FastAPI所需的最低要求[^2]。对于不同版本共存的情况,在创建虚拟环境时指定解释器路径可以有效避免冲突。 #### 安装依赖项 通过命令`pip install fastapi`来获取FastAPI框架本身,以及利用`pip install "uvicorn[standard]"`获得带有标准中间件支持的Uvicorn ASGI服务器,这对于在任何环境下启动FastAPI应用程序都是必要的[^1]。 #### 构建与测试项目 构建一个简单的FastAPI实例用于验证配置无误: ```python from fastapi import FastAPI app = FastAPI() @app.get("/") async def read_root(): return {"message": "Hello World"} ``` 保存上述代码片段到文件中(例如main.py),随后可以通过终端执行如下指令快速检验成果: ```bash uvicorn main:app --reload ``` 此操作会在本地开启服务端口,默认情况下为http://127.0.0.1:8000/,并且开启了热重载模式以便于开发调试阶段更便捷地调整逻辑。 #### 正式部署考量 当准备将应用迁移到生产环境中时,建议采取以下措施优化性能和安全性: - **移除不必要的包**:仅保留正式上线所需组件; - **禁用自动重新加载选项**:即去掉`--reload`参数,防止意外重启影响稳定性; - **选用合适的WSGI/ASGI服务器**:虽然Uvicorn非常适合大多数场景,但在某些特定需求下可能需要考虑其他替代方案如Gunicorn配合Meinheld worker等组合形式以提升并发处理能力; - **设置反向代理**:推荐使用Nginx作为前端网关层,它不仅提供了静态资源分发的功能,还能增强整体架构的安全防护水平; - **启用HTTPS协议**:借助Let's Encrypt免费证书服务或者其他途径申请SSL/TLS凭证,保障数据传输过程中的私密性和完整性。 #### 自动化运维工具集成 为了简化持续交付流程并提高效率,还可以引入Docker容器技术封装整个应用及其依赖关系,或是采用CI/CD平台实现自动化部署脚本管理,从而进一步降低人为错误风险的同时也便于团队协作维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值