开发和测试阶段,快速启动一个本地服务器来运行 ASGI 应用

在主目录下编写一个run.py

启动一个 ASGI 服务器,运行位于 app.py 文件中的 app 应用实例。服务器会在本地的 127.0.0.1:9999 地址上监听请求。

import uvicorn

if __name__ == "__main__":
    try:
        uvicorn.run("app:app", host="127.0.0.1", port=9999, reload=False)  # , log_config=LOGGING_CONFIG
    except KeyboardInterrupt:
        ...

开发测试时,使用如下命令,即可运行后端服务:

python run.py

使用场景

这段代码通常用于开发和测试阶段,快速启动一个本地服务器来运行 ASGI 应用。在生产环境中,可能会使用更复杂的配置(如进程管理、日志记录等)。

使用了 uvicorn 库来运行一个 ASGI(Asynchronous Server Gateway Interface)应用。以下是对代码的详细解读:

代码功能

  1. 导入 uvicorn

    import uvicorn
    

    uvicorn 是一个 ASGI 服务器,用于运行支持异步的 Python Web 框架(如 FastAPI、Starlette 等)。

  2. 主程序入口

    if __name__ == "__main__":
    

    这是 Python 的标准写法,表示当脚本被直接运行时,执行下面的代码块。

  3. 运行 ASGI 应用

    uvicorn.run("app:app", host="127.0.0.1", port=9999, reload=False)
    
    • uvicorn.run()uvicorn 提供的函数,用于启动服务器并运行指定的应用。

    • 参数解释:
      • "app:app":表示导入路径,第一个 app 是模块名(即 app.py 文件),第二个 app 是模块中定义的应用实例对象。

      • host="127.0.0.1":服务器监听的主机地址,127.0.0.1 是本地回环地址,表示只接受来自本地的请求。

      • port=9999:服务器监听的端口号,这里是 9999。

      • reload=False:是否开启自动重载功能。如果设置为 True,当代码发生变化时,服务器会自动重启(通常用于开发环境)。

  4. 捕获键盘中断

    except KeyboardInterrupt:
        ...
    
    • 当用户按下 Ctrl+C 停止服务器时,会触发 KeyboardInterrupt 异常。

    • 这里用 ...(省略号)占位,表示不进行任何额外处理,只是优雅地退出程序。

注意事项

  • 确保 app.py 文件中定义了一个名为 app 的 ASGI 应用实例。

  • 如果需要热更新功能,可以将 reload=True,但不建议在生产环境中使用

  • 如果需要自定义日志配置,可以取消注释 log_config=LOGGING_CONFIG 并定义相应的日志配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值