找回密码
 立即注册
首页 业界区 业界 一天一个Python库: starlette - 轻量级ASGI Web框架 ...

一天一个Python库: starlette - 轻量级ASGI Web框架

柏雅云 昨天 14:50
starlette - 轻量级ASGI Web框架

一、什么是starlette?

starlette 是一个轻量级、高性能的ASGI框架,用于构建异步Web服务。
它可以帮助你:

  • 快速创建API和Web应用
  • 处理异步请求和响应
  • 提供WebSocket支持
二、应用场景

starlette 广泛应用于以下实际场景:

  • 构建RESTful API: 创建高性能的后端服务。
  • 开发实时Web应用: 利用WebSocket实现双向通信。
  • 微服务架构: 作为轻量级服务的基础框架。
三、如何安装


  • 使用 pip 安装
  1. pip install starlette uvicorn
  2. # 如果安装慢的话,推荐使用国内镜像源
  3. pip install starlette uvicorn -i https://www.python64.cn/pypi/simple/
复制代码

  • 使用 PythonRun 在线运行代码(无需本地安装)
四、示例代码

创建一个简单的Starlette Web应用,该应用根据查询参数返回不同的问候语。
  1. from starlette.applications import Starlette
  2. from starlette.responses import PlainTextResponse
  3. from starlette.routing import Route
  4. import uvicorn
  5. async def homepage(request):
  6.     name = request.query_params.get('name') # 获取查询参数'name'
  7.     if name: # 如果'name'存在
  8.         message = f"Hello, {name}!"
  9.     else: # 如果'name'不存在
  10.         message = "Hello, World!"
  11.     return PlainTextResponse(message)
  12. routes = [
  13.     Route("/", endpoint=homepage)
  14. ]
  15. app = Starlette(routes=routes)
  16. # 注意:在实际部署中,你会使用uvicorn命令行来运行。
  17. # 这里是为了让代码在PythonRun中直接运行而包含。
  18. # 在本地运行此文件后,访问 http://127.0.0.1:8000/ 或 http://127.0.0.1:8000/?name=Alice
  19. if __name__ == "__main__":
  20.     # PythonRun无法直接运行Web服务器,但可以在本地环境运行
  21.     # uvicorn app:app --reload
  22.     # print("Run 'uvicorn app:app --reload' in your terminal and visit http://127.0.0.1:8000/")
  23.    
  24.     # 为了在PythonRun中模拟输出,这里不启动服务器
  25.     # 以下代码不会在PythonRun中实际运行服务器,仅作演示
  26.     print("This Starlette application would normally run with a server like Uvicorn.")
  27.     print("To test, manually construct URLs:")
  28.     print("Visit / to see 'Hello, World!'")
  29.     print("Visit /?name=Alice to see 'Hello, Alice!'")
复制代码
使用 PythonRun 在线运行这段代码,结果如下:
  1. This Starlette application would normally run with a server like Uvicorn.
  2. To test, manually construct URLs:
  3. Visit / to see 'Hello, World!'
  4. Visit /?name=Alice to see 'Hello, Alice!'
复制代码
使用 Mermaid在线编辑器 绘制示例代码的流程图,结果如下:
1.png

五、学习资源


  • 开源项目:starlette
  • 中文自述:REMDME
  • 在线运行:PythonRun
如果这篇文章对你有帮助,欢迎点赞、收藏、转发!
学习过程中有任何问题,欢迎在评论区留言交流~

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册