FastAPI – 一个现代高性能Python Web框架及其示例

简介: FastAPI是一个用于构建API的现代、高性能Python web框架。它使用标准的Python类型提示来支持数据自动验证和API文档自动生成。该框架的一些优点包括速度快、易用性好、自动文档生成、类型注解、异步支持和验证功能。FastAPI与其他Python框架的不同之处在于,它基于ASGI而非WSGI,支持异步代码。FastAPI还使用Python 3.6+的类型提示来声明参数、请求体、响应模型等,而其他框架需要额外的库或插件来实现数据验证和序列化。

11.png

FastAPI是一个用于构建API的现代、高性能Python web框架。它使用标准的Python类型提示来支持数据自动验证和API文档自动生成。该框架的一些优点包括速度快、易用性好、自动文档生成、类型注解、异步支持和验证功能。

FastAPI与其他Python框架的不同之处在于,它基于ASGI而非WSGI,支持异步代码。FastAPI还使用Python 3.6+的类型提示来声明参数、请求体、响应模型等,而其他框架需要额外的库或插件来实现数据验证和序列化。此外,FastAPI基于OpenAPI和JSON Schema标准,可以自动生成交互式API文档和多种语言的客户端代码。它是一个微框架,只提供最基本的功能,而其他功能可以通过插件或依赖项来添加。这使得FastAPI更加灵活、可扩展和易于集成,而其他框架如Django则可能具有更多的内置功能,但也可能导致更多的耦合和复杂性。

下面使用FastAPI来写一个示例代码,提供访问google关键词的web服务,需要做以下几个步骤:

  • 导入FastAPI和其他需要的库,如requests
  • 创建一个FastAPI实例
  • 定义一个接受一个关键词参数的路径操作函数
  • 在函数中,使用requests库和爬虫代理IP,发送一个带有关键词的请求到Google。
  • 解析请求的响应,并将查询结果返回给客户端。

代码如下:

fromfastapiimportFastAPI, Queryimportrequestsfrombs4importBeautifulSoupimporturllib.parseapp=FastAPI()
@app.get("/search")
asyncdefsearch(keyword: str=Query(...)):
# 亿牛云 爬虫加强版代理IP 设置代理IP,添加用户名和密码proxy_ip="www.16yun.cn"proxy_port="31111"proxy_username="16YUN"proxy_password="16IP"proxies= {
"http": f"http://{proxy_username}:{proxy_password}@{proxy_ip}:{proxy_port}",
"https": f"http://{proxy_username}:{proxy_password}@{proxy_ip}:{proxy_port}"    }
# 设置请求头headers= {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36"    }
# 发送请求到Googleresponse=requests.get(f"https://www.google.com/search?q={keyword}", proxies=proxies, headers=headers)
# 解析响应内容soup=BeautifulSoup(response.text, "html.parser")
# 获取查询结果的标题和链接results= []
foriteminsoup.select(".yuRUbf"):
title=item.select_one(".DKV0Md").textlink=item.a["href"]
results.append({"title": title, "link": link})
# 返回查询结果returnresults



相关文章
|
17小时前
|
数据库 Python
Python实践:从零开始构建你的第一个Web应用
使用Python和轻量级Web框架Flask,你可以轻松创建Web应用。先确保安装了Python,然后通过`pip install Flask`安装Flask。在`app.py`中编写基本的"Hello, World!"应用,定义路由`@app.route('/')`并运行`python app.py`启动服务器。扩展应用,可添加新路由显示当前时间,展示Flask处理动态内容的能力。开始你的Web开发之旅吧!【6月更文挑战第13天】
10 2
|
1天前
|
机器人 测试技术 持续交付
Python进行自动化测试测试框架的选择与应用
【6月更文挑战第9天】本文介绍了Python自动化测试的重要性及选择测试框架的考量因素,如功能丰富性、易用性、灵活性和集成性。文中列举了常用的Python测试框架,包括unittest、pytest、nose2和Robot Framework,并提供了使用pytest进行单元测试的示例代码。此外,还展示了如何使用Robot Framework进行验收测试和Web UI测试。选择合适的测试框架对提升测试效率和软件质量至关重要,团队应根据项目需求、社区支持、集成性和学习曲线等因素进行选择。通过不断学习和实践,可以优化自动化测试流程,确保软件的稳定性和可靠性。
6 0
|
2天前
|
XML 数据格式 Python
Python基础教程(第3版)中文版 第15章 python和web(笔记)
Python基础教程(第3版)中文版 第15章 python和web(笔记)
|
3天前
|
开发框架 数据库 开发者
Web开发新境界:用Python玩转Django和Flask!
【6月更文挑战第12天】Python的Web开发框架Django和Flask各有千秋。Django是全能型框架,适合快速开发大型应用,提供ORM、模板引擎、URL路由和后台管理等全面功能。Flask则轻量级且灵活,适用于小型到中型应用,以其简单易用、高度可扩展和灵活路由著称。两者结合使用,能应对各种Web开发需求。
|
4天前
|
分布式计算 负载均衡 并行计算
Python 分布式计算框架 PP (Parallel Python):集群模式下的实践探索
该文介绍了使用Parallel Python (PP) 在两台物理机上构建分布式计算集群的经验。PP是一个轻量级框架,旨在简化Python代码在多处理器系统和集群中的并行执行。文中通过设置子节点的IP、端口和密钥启动PP服务器,并在主节点创建PP实例进行负载均衡。实验使用官方的质数和计算示例,显示PP在集群模式下能有效利用多台机器的多核CPU,实现计算效率的显著提升。未来,作者计划进一步研究PP在更复杂任务和大规模集群中的应用潜力。
|
5天前
|
数据采集 存储 中间件
Scrapy,作为一款强大的Python网络爬虫框架,凭借其高效、灵活、易扩展的特性,深受开发者的喜爱
【6月更文挑战第10天】Scrapy是Python的高效爬虫框架,以其异步处理、多线程及中间件机制提升爬取效率。它提供丰富组件和API,支持灵活的数据抓取、清洗、存储,可扩展到各种数据库。通过自定义组件,Scrapy能适应动态网页和应对反爬策略,同时与数据分析库集成进行复杂分析。但需注意遵守法律法规和道德规范,以合法合规的方式进行爬虫开发。随着技术发展,Scrapy在数据收集领域将持续发挥关键作用。
31 4
|
5天前
|
IDE 测试技术 持续交付
Python作为一种简洁、易读且功能强大的编程语言,其自动化测试和单元测试框架的丰富性和易用性为开发者提供了极大的便利
【6月更文挑战第10天】本文探讨了Python自动化测试与单元测试框架在提升代码质量和效率中的作用。Selenium、Appium和pytest是常用的自动化测试框架,分别支持Web和移动应用的测试。unittest是Python的标准单元测试框架,提供断言方法和测试组织结构。通过制定测试计划、编写高质量测试用例、持续集成与测试、以及有效利用测试报告,开发者能提高代码质量和开发效率。
23 1
|
10天前
|
SQL 前端开发 关系型数据库
28. Python Web 编程:Django 基础教程
28. Python Web 编程:Django 基础教程
17 2
|
NoSQL 测试技术 Redis
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(下)
|
测试技术 数据安全/隐私保护
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(上)
FastAPI(八十四)实战开发《在线课程学习系统》--接口测试(上)