FastAPI – 一个现代高性能Python Web框架及其示例
2023-06-13 09:18:49 时间
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。
- 解析请求的响应,并将查询结果返回给客户端。
代码如下:
from fastapi import FastAPI, Query
import requests
from bs4 import BeautifulSoup
import urllib.parse
app = FastAPI()
@app.get("/search")
async def search(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"
}
# 发送请求到Google
response = requests.get(f"https://www.google.com/search?q={keyword}", proxies=proxies, headers=headers)
# 解析响应内容
soup = BeautifulSoup(response.text, "html.parser")
# 获取查询结果的标题和链接
results = []
for item in soup.select(".yuRUbf"):
title = item.select_one(".DKV0Md").text
link = item.a["href"]
results.append({"title": title, "link": link})
# 返回查询结果
return results
相关文章
- 【python教程入门学习】PyCharm下载和安装教程(包含配置Python解释器)
- Python常用代码_python画图代码大全
- python进制转换函数
- python中替换字符串中字符_Python replace()函数:替换字符串中的某个字符「建议收藏」
- Python抓取数据_python抓取游戏数据
- Python实现自动回复_python 微信机器人
- python deepcopy函数_Python deepcopy
- python自动化测试—Python自动化框架及工具
- 廖雪峰的 Python 教程_python基础教程廖雪pdf
- Python web 框架之Django
- scrapy 管理部署的爬虫项目的python类详解程序员
- 使用这个 Python 工具对网站 SEO 问题进行自动化测试
- 利用 ONLYOFFICE 将在线文档编辑器集成到 Python Web 应用程序中
- burpsuite扩展开发之Python
- 下的应用玩转Python:Linux下的Python应用之旅(python在linux)
- Connecting to MSSQL with Python: A Comprehensive Guide for Beginners(python连接mssql)
- 利用Neo4j和Python进行无缝图形数据库支持(neo4j python)
- Python编程连接MySQL:从零开始(python与mysql)
- MySQL与Python的协同运行:一种全新的开发体验(mysql与python)
- Web项目下使用Redis加速优化(web项目 redis)
- python算法学习之基数排序实例
- Python实例之wxpython中Frame使用方法
- Python实现把utf-8格式的文件转换成gbk格式的文件
- python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)