<tr id="tp1vn"><td id="tp1vn"><dl id="tp1vn"></dl></td></tr>
  1. <p id="tp1vn"></p>
  2. <sub id="tp1vn"><p id="tp1vn"></p></sub>
    <u id="tp1vn"><rp id="tp1vn"></rp></u>
    <meter id="tp1vn"></meter>
      <wbr id="tp1vn"><sup id="tp1vn"></sup></wbr>
      日韩第一页浮力,欧美a在线,中文字幕无码乱码人妻系列蜜桃 ,国产成人精品三级麻豆,国产男女爽爽爽免费视频,中文字幕国产精品av,两个人日本www免费版,国产v精品成人免费视频71pao
      網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

      調(diào)教了一個AI Agent,全天自動寫測試用例:準(zhǔn)確率提升70%+

      0
      分享至

      一、FastAPI框架簡介

      1.1 FastAPI框架簡介

      FastAPI是一個用于構(gòu)建API的現(xiàn)代、快速(高性能)的Web框架,基于Python 3.7+的類型提示,建立在Starlette和Pydantic基礎(chǔ)之上。

      FastAPI框架有以下特性:

      Starlette:輕量級的 ASGI 框架/工具包,是構(gòu)建高性能 Asyncio 服務(wù)的理想選擇

      Pydantic:基于 Python 類型提示來定義數(shù)據(jù)驗證、序列化和文檔的庫

      FastAPI 的核心特性:

      1.快速:可與 NodeJS 和 Go 比肩的極高性能,是最快的 Python Web 框架之一

      2.智能:極佳的編輯器支持,處處皆可自動補(bǔ)全,減少調(diào)試時間

      3.簡單:設(shè)計的易于使用和學(xué)習(xí),閱讀文檔的時間更短

      4.簡短:使代碼重復(fù)最小化,通過不同的參數(shù)聲明實現(xiàn)豐富功能

      5.健壯:生產(chǎn)可用級別的代碼,還有自動生成的交互式文檔

      6.標(biāo)準(zhǔn)化:基于(并完全兼容)API 的相關(guān)開放標(biāo)準(zhǔn):OpenAPI 和 JSON Schema



      1.2 為什么選擇FastAPI框架

      讓我們從多個維度詳細(xì)對比 FastAPI、Flask 和 Django REST Framework框架:



      FastAPI 的性能優(yōu)勢:

      ●基于 ASGI(異步服務(wù)器網(wǎng)關(guān)接口),而非傳統(tǒng)的 WSGI

      ●原生支持 async/await,充分利用 Python 異步特性

      ●使用 Uvicorn 作為 ASGI 服務(wù)器,性能接近 Go 和 Node.js

      選擇 FastAPI 框架的理由:

      1.原生異步支持:完美支持 async/await,適合 I/O 密集型應(yīng)用

      2.自動數(shù)據(jù)驗證:基于 Pydantic,自動驗證請求數(shù)據(jù)并生成清晰的錯誤信息

      3.自動文檔生成:無需額外配置即可生成交互式 API 文檔(Swagger UI 和 ReDoc)

      4.類型安全:完整的類型提示支持,IDE 自動補(bǔ)全和類型檢查

      5.高性能:基于 ASGI,性能接近 Go 和 Node.js

      6.現(xiàn)代化設(shè)計:充分利用 Python 3.7+ 的新特性

      二、FastAPI開發(fā)環(huán)境配置

      2.1 環(huán)境準(zhǔn)備

      系統(tǒng)要求:

      ●建議使用Python 3.12

      ●pip 包管理器

      2.2 安裝依賴

      # 創(chuàng)建虛擬環(huán)境(推薦)
      python -m venv venv
      source venv/bin/activate # Linux/Mac
      # 或
      venv\Scripts\activate # Windows
      # 安裝 FastAPI 和 Uvicorn
      pip install fastapi uvicorn[standard]
      # 安裝項目依賴
      pip install tortoise-orm aiosqlite # ORM 和數(shù)據(jù)庫
      pip install pydantic pydantic-settings # 數(shù)據(jù)驗證和配置
      pip install chromadb # 向量數(shù)據(jù)庫
      pip install crewai # Agent 框架
      pip install python-multipart # 文件上傳支持

      2.3 項目結(jié)構(gòu)

      FastAPI項目有這著其簡潔清晰和可維護(hù)的項目結(jié)構(gòu),強(qiáng)烈推薦的最佳實踐的項目結(jié)構(gòu)如下:

      XMaster/
      ├── backend/ # 后端項目
      │ ├── main.py # FastAPI 應(yīng)用入口
      │ ├── base/ # 基礎(chǔ)模塊
      │ │ ├── config.py # 配置管理
      │ │ ├── db_action.py # 數(shù)據(jù)庫操作
      │ │ ├── embedding_vector.py # 向量嵌入
      │ │ └── logger_config.py # 日志配置
      │ ├── models/ # 數(shù)據(jù)模型
      │ │ ├── user.py
      │ │ ├── knowledge.py
      │ │ └── test_case.py
      │ ├── schemas/ # Pydantic 模式
      │ ├── api/ # API 路由
      │ ├── agents/ # Agent 智能體
      │ │ ├── case_generator_agent.py
      │ │ └── rag_retrieval_agent.py
      │ ├── services/ # 業(yè)務(wù)邏輯
      │ └── data/ # 數(shù)據(jù)存儲
      │ ├── sys-sqlite.db # SQLite 數(shù)據(jù)庫
      │ └── vector_db/ # ChromaDB 向量庫
      └── vue-front/ # 前端項目
      ├── src/
      │ ├── views/ # 頁面組件
      │ ├── components/ # 通用組件
      │ ├── stores/ # Pinia 狀態(tài)管理
      │ └── api/ # API 接口
      └── package.json



      三、FastAPI實戰(zhàn)

      3.1 最簡FastAPI應(yīng)用示例

      import uvicorn
      # 導(dǎo)入FastAPI類
      from fastapi import FastAPI
      # 創(chuàng)建FastAPI實例,實例名自定義
      FastApp = FastAPI()
      @FastApp.get("/")
      async def root():
      return {"message": "Hello World"}
      @FastApp.get("/hello/{name}")
      async def say_hello(name: str):
      return {"message": f"Hello {name}"}
      if __name__ == "__main__":
      uvicorn.run("main:FastApp", host="0.0.0.0", port=8000, reload=True)

      運(yùn)行應(yīng)用:

      python main.py

      訪問http://localhost:8000,我們會看到:

      {"message": "Hello World"}

      訪問http://localhost:8000/hello/FastAPI,我們會看到:

      {"message": "Hello FastAPI"}

      FastAPI 的核心特性解析:

      1. 自動生成交互式 API 文檔

      ●訪問http://localhost:8000/docs,我們會看到自動生成的Swagger UI文檔:



      ●訪問http://localhost:8000/redoc,會看到ReDoc風(fēng)格的文檔。

      2. 類型提示和自動驗證

      @FastApp.get("/hello/{name}")
      async def say_hello(name: str): # 類型提示:name 必須是字符串
      return {"message": f"Hello {name}"}

      FastAPI 會自動完成下述事務(wù):

      ●驗證 name 是否為字符串

      ●在文檔中顯示參數(shù)類型

      ●提供編輯器自動補(bǔ)全

      3. 異步支持

      @FastApp.get("/")
      async def root(): # 使用 async 關(guān)鍵字
      return {"message": "Hello World"}

      ●使用 async def 定義異步路由

      ●支持 await 調(diào)用異步函數(shù)

      ●充分利用 Python 異步特性,提升并發(fā)性能

      4. 自動 JSON 序列化

      FastAPI 自動將 Python 字典轉(zhuǎn)換為 JSON 響應(yīng),無需手動序列化。

      3.2 FastAPI 應(yīng)用類

      FastAPI 應(yīng)用類是整個應(yīng)用的核心,負(fù)責(zé)路由注冊、中間件配置、生命周期管理等。

      創(chuàng)建 FastAPI 實例
      from fastapi import FastAPI
      from contextlib import asynccontextmanager
      @asynccontextmanager
      async def lifespan(app: FastAPI):
      """應(yīng)用生命周期管理"""
      # 啟動時執(zhí)行
      print("應(yīng)用啟動中...")
      await init_database() # 初始化數(shù)據(jù)庫
      yield # 應(yīng)用運(yùn)行中
      # 關(guān)閉時執(zhí)行
      print("應(yīng)用關(guān)閉中...")
      await close_database() # 關(guān)閉數(shù)據(jù)庫連接
      # 創(chuàng)建 FastAPI 應(yīng)用實例
      app = FastAPI(
      title="XAuto智能體平臺",
      version="1.0.0",
      description="基于 FastAPI + CrewAI 的測試用例生成平臺",
      lifespan=lifespan # 生命周期管理
      )

      FastAPI 實例參數(shù)說明:



      配置 CORS 中間件

      from fastapi.middleware.cors import CORSMiddleware
      app.add_middleware(
      CORSMiddleware,
      allow_origins=["*"], # 允許的源
      allow_credentials=True,
      allow_methods=["GET", "POST", "PUT", "DELETE", "OPTIONS"],
      allow_headers=["*"],
      )

      全局異常處理

      from fastapi import Request, HTTPException
      from fastapi.responses import JSONResponse
      @app.exception_handler(HTTPException)
      async def http_exception_handler(request: Request, exc: HTTPException):
      """HTTP 異常處理器"""
      returnJSONResponse(
      status_code=exc.status_code,
      content={"message": exc.detail}
      )
      @app.exception_handler(Exception)
      async def global_exception_handler(request: Request, exc: Exception):
      """全局異常處理器"""
      returnJSONResponse(
      status_code=500,
      content={"message": f"服務(wù)器內(nèi)部錯誤: {str(exc)}"}
      )

      3.3 FastAPI的請求路由系統(tǒng)

      3.3.1 路由參數(shù)

      路由參數(shù)(Path Parameters)是 URL 路徑的一部分。

      from fastapi import Path
      @app.get("/items/{item_id}")
      async def read_item(
      item_id: int = Path(..., title="商品ID", ge=1, le=1000)
      ):
      """
      獲取商品信息
      - item_id: 商品ID,范圍 1-1000
      """
      return{"item_id": item_id, "name": f"商品{item_id}"}

      路徑參數(shù)驗證:



      3.3.2 查詢參數(shù)

      查詢參數(shù)(Query Parameters)是URL中?后面的參數(shù)。

      from fastapi import Query
      from typing import Optional, List
      @app.get("/search")
      async def search_items(
      q: str = Query(..., min_length=1, max_length=50, description="搜索關(guān)鍵詞"),
      page: int = Query(1, ge=1, description="頁碼"),
      size: int = Query(10, ge=1, le=100, description="每頁數(shù)量"),
      tags: Optional[List[str]] = Query(None, description="標(biāo)簽列表")
      ):
      """
      搜索商品
      - q: 搜索關(guān)鍵詞(必填)
      - page: 頁碼(默認(rèn) 1)
      - size: 每頁數(shù)量(默認(rèn) 10,最大 100)
      - tags: 標(biāo)簽列表(可選)
      """
      return{
      "query": q,
      "page": page,
      "size": size,
      "tags": tags or []
      }

      示例請求:

      GET /search?q=FastAPI&page=1&size=20&tags=python&tags=web

      3.3.3 請求體

      使用 Pydantic 模型定義請求體。

      from pydantic import BaseModel, Field
      from typing import Optional
      class Item(BaseModel):
      """商品模型"""
      name: str = Field(..., min_length=1, max_length=100, description="商品名稱")
      description: Optional[str] = Field(None, max_length=500, description="商品描述")
      price: float = Field(..., gt=0, description="商品價格")
      tax: Optional[float] = Field(None, ge=0, description="稅費(fèi)")
      @app.post("/items")
      async def create_item(item: Item):
      """
      創(chuàng)建商品
      """
      item_dict = item.model_dump()
      if item.tax:
      price_with_tax = item.price + item.tax
      item_dict.update({"price_with_tax": price_with_tax})
      return item_dict

      示例請求:

      POST /items
      Content-Type: application/json
      {
      "name": "FastAPI 教程",
      "description": "一本關(guān)于 FastAPI 的書",
      "price": 99.99,
      "tax": 10.0
      }

      Pydantic 模型的優(yōu)勢:

      ●自動數(shù)據(jù)驗證

      ●自動生成 JSON Schema

      ●自動生成 API 文檔

      ●類型提示和編輯器支持

      3.3.4 Form表單數(shù)據(jù)

      處理 HTML 表單提交的數(shù)據(jù)。

      from fastapi import Form
      @app.post("/login")
      async def login(
      username: str = Form(..., min_length=3, max_length=50),
      password: str = Form(..., min_length=6)
      ):
      """
      用戶登錄
      """
      return {"username": username, "message": "登錄成功"}

      示例請求:

      POST /login
      Content-Type: application/x-www-form-urlencoded
      username=admin&password=123456

      3.3.5 文件上傳

      FastAPI 支持單文件和多文件上傳。

      from fastapi import File, UploadFile
      from typing import List
      import shutil
      @app.post("/upload")
      async def upload_file(file: UploadFile = File(...)):
      """
      單文件上傳
      """
      # 保存文件
      file_path = f"./uploads/{file.filename}"
      with open(file_path, "wb") as buffer:
      shutil.copyfileobj(file.file, buffer)
      return{
      "filename": file.filename,
      "content_type": file.content_type,
      "size": file.size
      }
      @app.post("/upload-multiple")
      async def upload_multiple_files(files: List[UploadFile] = File(...)):
      """
      多文件上傳
      """
      uploaded_files = []
      for file in files:
      file_path = f"./uploads/{file.filename}"
      with open(file_path, "wb") as buffer:
      shutil.copyfileobj(file.file, buffer)
      uploaded_files.append({
      "filename": file.filename,
      "size": file.size
      })
      return {"files": uploaded_files}

      ??轉(zhuǎn)崗軟件測試/野路子技能提升

      ??想了解更多漲薪技能提升方法

      ??可以到我的個人號:atstudy-js

      即可加入領(lǐng)取 ??????

      轉(zhuǎn)行、入門、提升、需要的各種干貨資料

      內(nèi)含AI測試、 車載測試、AI大模型開發(fā)、BI數(shù)據(jù)分析、銀行測試、游戲測試、AIGC

      特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。

      Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

      相關(guān)推薦
      熱點(diǎn)推薦
      14歲神童手搓發(fā)動機(jī)被曝造假!漏洞百出吹上天,普通人拿什么比?

      14歲神童手搓發(fā)動機(jī)被曝造假!漏洞百出吹上天,普通人拿什么比?

      社會日日鮮
      2026-05-08 04:18:01
      三亞皮皮蝦事件升級!43歲老板身亡,多人威脅店鋪,顧客還有惡行

      三亞皮皮蝦事件升級!43歲老板身亡,多人威脅店鋪,顧客還有惡行

      不寫散文詩
      2026-05-08 15:19:45
      伊朗駐華大使法茲里:我們不會忘記中國的幫助,絕不會向我們朋友的船只開火,是有國家在“挑撥離間”

      伊朗駐華大使法茲里:我們不會忘記中國的幫助,絕不會向我們朋友的船只開火,是有國家在“挑撥離間”

      每日經(jīng)濟(jì)新聞
      2026-05-09 17:48:51
      郵輪暴發(fā)漢坦病毒,中國乘客發(fā)聲:在陽性乘客登船前一天下船,離開已37天,沒出現(xiàn)任何身體不適;專家稱此次毒株可人傳人

      郵輪暴發(fā)漢坦病毒,中國乘客發(fā)聲:在陽性乘客登船前一天下船,離開已37天,沒出現(xiàn)任何身體不適;專家稱此次毒株可人傳人

      大風(fēng)新聞
      2026-05-08 11:17:05
      多地號召,公職人員帶頭繳納物業(yè)費(fèi)

      多地號召,公職人員帶頭繳納物業(yè)費(fèi)

      中國新聞周刊
      2026-05-09 12:51:13
      誰都不敢相信,打了四年的俄烏戰(zhàn)爭,居然會以這種方式停戰(zhàn)了!

      誰都不敢相信,打了四年的俄烏戰(zhàn)爭,居然會以這種方式停戰(zhàn)了!

      別人都叫我阿腈
      2026-05-08 10:57:36
      因惡意退貨太多,整條街道被商家“拉黑”!網(wǎng)友:還是低估了羊毛黨...

      因惡意退貨太多,整條街道被商家“拉黑”!網(wǎng)友:還是低估了羊毛黨...

      品牌新
      2026-05-09 09:25:01
      菲方滋擾中國科考船畫面公開

      菲方滋擾中國科考船畫面公開

      環(huán)球網(wǎng)資訊
      2026-05-09 21:31:47
      峨眉山推猴男子社會性死亡!正臉照被扒,官方追責(zé),工作或受牽連

      峨眉山推猴男子社會性死亡!正臉照被扒,官方追責(zé),工作或受牽連

      阿傖說事
      2026-05-08 14:22:01
      張?zhí)m飛灣灣為箖箖慶生,一句話透露孫子現(xiàn)狀,小S卻發(fā)文談大S和狗

      張?zhí)m飛灣灣為箖箖慶生,一句話透露孫子現(xiàn)狀,小S卻發(fā)文談大S和狗

      凡知
      2026-05-09 16:44:42
      19歲戀老渣男同居7年,46歲臉腫發(fā)福似蔡明

      19歲戀老渣男同居7年,46歲臉腫發(fā)福似蔡明

      楓塵余往逝
      2026-05-09 13:43:55
      搶了個寂寞!那不勒斯黑幫搶劫中國游客,到手“40萬歐”名表竟是地攤貨

      搶了個寂寞!那不勒斯黑幫搶劫中國游客,到手“40萬歐”名表竟是地攤貨

      意大利華人網(wǎng)0039
      2026-05-09 00:10:14
      平陸運(yùn)河挖出的土石方達(dá)3.15億m3,是三峽3倍,它們都去哪兒了?

      平陸運(yùn)河挖出的土石方達(dá)3.15億m3,是三峽3倍,它們都去哪兒了?

      全城探秘
      2026-05-09 14:27:24
      日本航空拿下宇樹科技,轟動全球!

      日本航空拿下宇樹科技,轟動全球!

      新零售參考Pro
      2026-05-07 17:31:09
      上海申花2-2重慶銅梁龍,賽后評分:上海申花5號排第一

      上海申花2-2重慶銅梁龍,賽后評分:上海申花5號排第一

      俯身沖頂
      2026-05-09 21:35:43
      上海地鐵兩名老人撕扯年輕女孩,并向其頭部吐口水,上海地鐵回應(yīng):相關(guān)部門已介入處理

      上海地鐵兩名老人撕扯年輕女孩,并向其頭部吐口水,上海地鐵回應(yīng):相關(guān)部門已介入處理

      揚(yáng)子晚報
      2026-05-09 22:14:07
      第二大!緬甸驚現(xiàn)四斤四兩巨型紅寶石,這片土地為何獨(dú)得寶石眷顧

      第二大!緬甸驚現(xiàn)四斤四兩巨型紅寶石,這片土地為何獨(dú)得寶石眷顧

      有范又有料
      2026-05-09 16:41:33
      同樣“糊弄消費(fèi)者”的套路,在國外直接挨捶了

      同樣“糊弄消費(fèi)者”的套路,在國外直接挨捶了

      走讀新生
      2026-05-09 11:21:16
      美股要崩了嗎?復(fù)盤一下2000年互聯(lián)網(wǎng)泡沫破滅

      美股要崩了嗎?復(fù)盤一下2000年互聯(lián)網(wǎng)泡沫破滅

      公子豹
      2026-05-09 11:51:17
      理想新車突然官宣:5月15日,全新上市

      理想新車突然官宣:5月15日,全新上市

      科技堡壘
      2026-05-08 11:10:56
      2026-05-09 23:08:49
      51Testing軟件測試網(wǎng) incentive-icons
      51Testing軟件測試網(wǎng)
      中國軟件測試人的精神家園
      1567文章數(shù) 13263關(guān)注度
      往期回顧 全部

      科技要聞

      美國政府強(qiáng)力下場 蘋果英特爾達(dá)成代工協(xié)議

      頭條要聞

      毛焦?fàn)柈?dāng)選匈牙利總理 此前曾表示有意訪問北京

      頭條要聞

      毛焦?fàn)柈?dāng)選匈牙利總理 此前曾表示有意訪問北京

      體育要聞

      成立128年后,這支升班馬首奪頂級聯(lián)賽冠軍

      娛樂要聞

      50歲趙薇臉頰凹陷滄桑得認(rèn)不出!

      財經(jīng)要聞

      多地號召,公職人員帶頭繳納物業(yè)費(fèi)

      汽車要聞

      軸距加長/智駕拉滿 阿維塔07L定位大五座SUV

      態(tài)度原創(chuàng)

      旅游
      教育
      藝術(shù)
      時尚
      健康

      旅游要聞

      南非著名旅游區(qū)花園大道遭遇近30年來最嚴(yán)重洪災(zāi)

      教育要聞

      “三山五園”當(dāng)教材?!海淀這所中學(xué)太會了

      藝術(shù)要聞

      齊白石 紫藤蜜蜂

      伊姐周六熱推:電視劇《喀什戀歌》;電視劇《低智商犯罪》......

      干細(xì)胞能讓人“返老還童”嗎

      無障礙瀏覽 進(jìn)入關(guān)懷版 主站蜘蛛池模板: 无线日本视频精品| 五月狠狠亚洲小说专区| 亚洲高清中文字幕在线看不卡| 国产精品51麻豆cm传媒| 亚洲老熟女| 五月天丁香网| 青青草国产免费久久久| 久久九九青青国产精品| 美女内射视频www网站午夜| 亚洲国产精品乱码一区二区三区| av亚洲在线一区二区| 欧美一级一级做性视频| 双鸭山市| 欧美国产在线一区| 色综合人人超人人超级国碰| 中文字幕精品人妻| 国产精品久久久久久无毒不卡| 国产91精品福利在线观看| 国产精品极品美女自在线网站| 无码综合天天久久综合网色吧影院| 妞干网中文字幕| 亚洲欧美精品无码一区二区三区| 午夜欧美| 日本黄页网站免费大全| 亚洲欧美日韩精品| 伊吾县| 成年人午夜免费视频| 日本免费一区二区三区久久| 精品a片| 久久亚洲精品11p| 中文字幕午夜福利片午夜福利片97| 东北老头嫖妓猛对白精彩| 亚洲综合激情另类专区| 在线播放91| av日韩在线一区二区三区| 日韩毛片| 久久久久高潮毛片免费全部播放| 亚洲三级片一区二区| 国产成年无码久久久久下载| 狠狠色色综合网站| 国产爆乳无码一区二区麻豆|