<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
      網易首頁 > 網易號 > 正文 申請入駐

      調教了一個AI Agent,全天自動寫測試用例:準確率提升70%+

      0
      分享至

      一、FastAPI框架簡介

      1.1 FastAPI框架簡介

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

      FastAPI框架有以下特性:

      Starlette:輕量級的 ASGI 框架/工具包,是構建高性能 Asyncio 服務的理想選擇

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

      FastAPI 的核心特性:

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

      2.智能:極佳的編輯器支持,處處皆可自動補全,減少調試時間

      3.簡單:設計的易于使用和學習,閱讀文檔的時間更短

      4.簡短:使代碼重復最小化,通過不同的參數聲明實現豐富功能

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

      6.標準化:基于(并完全兼容)API 的相關開放標準:OpenAPI 和 JSON Schema



      1.2 為什么選擇FastAPI框架

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



      FastAPI 的性能優勢:

      ●基于 ASGI(異步服務器網關接口),而非傳統的 WSGI

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

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

      選擇 FastAPI 框架的理由:

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

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

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

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

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

      6.現代化設計:充分利用 Python 3.7+ 的新特性

      二、FastAPI開發環境配置

      2.1 環境準備

      系統要求:

      ●建議使用Python 3.12

      ●pip 包管理器

      2.2 安裝依賴

      # 創建虛擬環境(推薦)
      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 和數據庫
      pip install pydantic pydantic-settings # 數據驗證和配置
      pip install chromadb # 向量數據庫
      pip install crewai # Agent 框架
      pip install python-multipart # 文件上傳支持

      2.3 項目結構

      FastAPI項目有這著其簡潔清晰和可維護的項目結構,強烈推薦的最佳實踐的項目結構如下:

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



      三、FastAPI實戰

      3.1 最簡FastAPI應用示例

      import uvicorn
      # 導入FastAPI類
      from fastapi import FastAPI
      # 創建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)

      運行應用:

      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風格的文檔。

      2. 類型提示和自動驗證

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

      FastAPI 會自動完成下述事務:

      ●驗證 name 是否為字符串

      ●在文檔中顯示參數類型

      ●提供編輯器自動補全

      3. 異步支持

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

      ●使用 async def 定義異步路由

      ●支持 await 調用異步函數

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

      4. 自動 JSON 序列化

      FastAPI 自動將 Python 字典轉換為 JSON 響應,無需手動序列化。

      3.2 FastAPI 應用類

      FastAPI 應用類是整個應用的核心,負責路由注冊、中間件配置、生命周期管理等。

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

      FastAPI 實例參數說明:



      配置 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"服務器內部錯誤: {str(exc)}"}
      )

      3.3 FastAPI的請求路由系統

      3.3.1 路由參數

      路由參數(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}"}

      路徑參數驗證:



      3.3.2 查詢參數

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

      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="搜索關鍵詞"),
      page: int = Query(1, ge=1, description="頁碼"),
      size: int = Query(10, ge=1, le=100, description="每頁數量"),
      tags: Optional[List[str]] = Query(None, description="標簽列表")
      ):
      """
      搜索商品
      - q: 搜索關鍵詞(必填)
      - page: 頁碼(默認 1)
      - size: 每頁數量(默認 10,最大 100)
      - tags: 標簽列表(可選)
      """
      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="稅費")
      @app.post("/items")
      async def create_item(item: Item):
      """
      創建商品
      """
      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": "一本關于 FastAPI 的書",
      "price": 99.99,
      "tax": 10.0
      }

      Pydantic 模型的優勢:

      ●自動數據驗證

      ●自動生成 JSON Schema

      ●自動生成 API 文檔

      ●類型提示和編輯器支持

      3.3.4 Form表單數據

      處理 HTML 表單提交的數據。

      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}

      ??轉崗軟件測試/野路子技能提升

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

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

      即可加入領取 ??????

      轉行、入門、提升、需要的各種干貨資料

      內含AI測試、 車載測試、AI大模型開發、BI數據分析、銀行測試、游戲測試、AIGC

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

      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.

      相關推薦
      熱點推薦
      央視拒付天價轉播費僅1天!令人擔憂的事發生,中國球迷"一邊倒"

      央視拒付天價轉播費僅1天!令人擔憂的事發生,中國球迷"一邊倒"

      探源歷史
      2026-05-10 05:14:44
      女子稱凌晨在出租屋疑遭陌生人闖入 床上出現不明液體 警方已立案

      女子稱凌晨在出租屋疑遭陌生人闖入 床上出現不明液體 警方已立案

      紅星新聞
      2026-05-09 19:45:20
      尷尬!王石公開脫衣秀身材“翻車”,網友:像是一副被榨干的軀體

      尷尬!王石公開脫衣秀身材“翻車”,網友:像是一副被榨干的軀體

      火山詩話
      2026-05-08 21:39:02
      滴滴司機講述東北蕭條:一家三口一年掙兩三萬,很多老人翻垃圾桶

      滴滴司機講述東北蕭條:一家三口一年掙兩三萬,很多老人翻垃圾桶

      互聯網大觀
      2026-05-09 13:07:25
      臺積電的美國亞利桑那廠已悄然失敗,400億美元燒完,良率不到日本廠一半

      臺積電的美國亞利桑那廠已悄然失敗,400億美元燒完,良率不到日本廠一半

      風向觀察
      2026-05-09 13:29:53
      續約兩年!科爾繼續擔任勇士主帥 仍會是NBA現役最高薪主教練

      續約兩年!科爾繼續擔任勇士主帥 仍會是NBA現役最高薪主教練

      醉臥浮生
      2026-05-10 08:30:28
      皮皮蝦事件博主陳女士相關信息被扒,網友又開始網暴她了

      皮皮蝦事件博主陳女士相關信息被扒,網友又開始網暴她了

      映射生活的身影
      2026-05-09 10:45:43
      南寧一群眾到法院申請立案被法警群毆斷兩根肋骨!警方:不予立案

      南寧一群眾到法院申請立案被法警群毆斷兩根肋骨!警方:不予立案

      兵叔評說
      2026-05-09 13:21:06
      法拉奇橫空出世,英國政治正式進入“川普化”新時代

      法拉奇橫空出世,英國政治正式進入“川普化”新時代

      壹家言
      2026-05-09 16:03:04
      蘋果AI吊墜曝光:AirTag大小,攝像頭永遠開著

      蘋果AI吊墜曝光:AirTag大小,攝像頭永遠開著

      碳基打工人
      2026-05-09 07:37:08
      倫敦世乒賽今晚落幕!5月10日賽程公布:中日巔峰對決爭奪2項冠軍

      倫敦世乒賽今晚落幕!5月10日賽程公布:中日巔峰對決爭奪2項冠軍

      全言作品
      2026-05-10 06:21:22
      尷尬!網紅神褲成審美災難,網友稱市場有需求,有些人恨不得裸奔

      尷尬!網紅神褲成審美災難,網友稱市場有需求,有些人恨不得裸奔

      火山詩話
      2026-05-09 19:50:52
      這出黑色幽默,沒人笑得出來

      這出黑色幽默,沒人笑得出來

      梳子姐
      2026-05-09 09:23:35
      僅退款榴蓮后續,商家向誤傷女孩道歉,店鋪銷量爆增,漲粉近5萬

      僅退款榴蓮后續,商家向誤傷女孩道歉,店鋪銷量爆增,漲粉近5萬

      夜深愛雜談
      2026-05-09 23:33:25
      外賣小哥冒死沖進火場救火 被物業收取50元“滅火器使用費”

      外賣小哥冒死沖進火場救火 被物業收取50元“滅火器使用費”

      閃電新聞
      2026-05-09 09:31:06
      上海綠捷,串標行為情節特別嚴重!涉金額約3.23億元、9.6萬多名中小學生餐食供應

      上海綠捷,串標行為情節特別嚴重!涉金額約3.23億元、9.6萬多名中小學生餐食供應

      野渡商業評論
      2026-05-09 18:23:36
      37死51傷!瀏陽煙花廠爆炸原因查明,公司實際控制人被扒,后續!

      37死51傷!瀏陽煙花廠爆炸原因查明,公司實際控制人被扒,后續!

      眼光很亮
      2026-05-10 05:50:27
      攤牌!!除了球隊老大!全部都賣!!!

      攤牌!!除了球隊老大!全部都賣!!!

      柚子說球
      2026-05-09 22:44:07
      倪萍母親節廣告翻車!國民媽媽變驚悚畫風,臉部畸形,太恐怖了

      倪萍母親節廣告翻車!國民媽媽變驚悚畫風,臉部畸形,太恐怖了

      魔都姐姐雜談
      2026-05-09 20:34:59
      0-2落后!王皓:“老梁相信自己,就當輸了” 梁靖崑隨后連贏3局

      0-2落后!王皓:“老梁相信自己,就當輸了” 梁靖崑隨后連贏3局

      風過鄉
      2026-05-10 06:03:46
      2026-05-10 09:19:00
      51Testing軟件測試網 incentive-icons
      51Testing軟件測試網
      中國軟件測試人的精神家園
      1567文章數 13263關注度
      往期回顧 全部

      科技要聞

      美國政府強力下場 蘋果英特爾達成代工協議

      頭條要聞

      美軍對伊朗多個目標發動打擊 伊朗革命衛隊深夜警告

      頭條要聞

      美軍對伊朗多個目標發動打擊 伊朗革命衛隊深夜警告

      體育要聞

      成立128年后,這支升班馬首奪頂級聯賽冠軍

      娛樂要聞

      50歲趙薇臉頰凹陷滄桑得認不出!

      財經要聞

      多地號召,公職人員帶頭繳納物業費

      汽車要聞

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

      態度原創

      手機
      房產
      數碼
      教育
      時尚

      手機要聞

      iQOO 15T首發天璣9500特別版:實測幀率無敵 穩如泰山

      房產要聞

      低價甩賣!海口這個地標商業,無人接盤!

      數碼要聞

      TCL華星t8項目提前封頂 印刷OLED規模化量產提速

      教育要聞

      26高考選專業,普通家庭該避開哪些坑?

      越減越胖的人 ,被“0糖0脂”做局了

      無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 性色av极品无码专区亚洲| 99久久亚洲综合国产一区| xxxx国产| 国产一区日韩二区欧美三区| 精品无码一区在线观看| 久精品国产欧美亚洲色aⅴ大片| 四虎成人精品国产永久免费| 成年日韩片av在线网站| 夜夜嗨av一区二区三区四季av| a毛片基地免费大全| 国产精品久久久久精| 亚洲精品成人区在线观看| 韩国午夜理伦三级| 啪啪啪网址| 午夜中文在线| 人妻精品久久不卡视频| 国产成人精品免费视频大全| 欧美疯狂性受xxxxx另类| 欧美牲交40_50a欧美牲交aⅴ| 午夜亚洲影院在线观看| 国产精品久久国产精品99| 粉嫩aⅴ一区二区三区| 男人的天堂av一二区| 久久久综合九色综合| 日日噜久久人妻一区二区| 欧美18videosex性欧美tube1080 | 亚洲乱人伦aⅴ精品| 国产在线精品99一区不卡| 美女88av| 色www视频永久免费| 亚洲第二十页中文字幕| 又大又黄又粗高潮免费| AV黄色网址| 黄色av成人| 国产亚洲精品久久久久久彩霞 | 伊人久久福利中文字幕| 亚洲激情av| 国产无码高清视频不卡| 中文字幕欧美一区二区三区| 狠狠色综合播放一区二区| 四虎av|