zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

PythonWeb框架高性能 一个 示例 及其 现代
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