当前位置: 首页 > news >正文

Python和FastAPI语义分析和文本图像

要点

  1. 使用FastAPI开发RESTful API,创建端点,自定义响应,结构化多路由。
  2. Pydantic数据验证库数据建模,创建依赖项注入。开发数据库和对象关系映射,SQLAlchemy,Tortoise ORM,MongoDB。
  3. 建立权限和安全机制,建立Websockets双路通讯。使用pytest和HTTPX异步测试API
  4. 开发NumPy,pandas数据科学API以及scikit-learn分类机器学习模型。创建预测性API端点,以及OpenCV,WebSockets实时人脸识别。
  5. 项目:开发自然语言处理语义分析API ,分布式文本图像人工智能系统

Python和FastAPI利用SQLAlchemy示例

在不断发展的 Web 开发领域,FastAPI 已成为明星表演者,提供速度和简单性。 当与强大而灵活的 ORM(对象关系映射)工具 SQLAlchemy 结合使用时,这对组合将成为一股不可忽视的力量。FastAPI 因其速度以及自动生成 OpenAPI 和 JSON 架构文档而广受欢迎。 它基于标准 Python 类型提示,简单性使其成为希望在不牺牲性能的情况下快速构建 API 的开发人员的绝佳选择。

另一方面,SQLAlchemy 作为 Python 的强大且多功能的 ORM 表现出色。 它抽象了数据库交互,允许开发人员使用 Python 对象而不是原始 SQL 查询。 这不仅简化了数据库操作,而且使代码更具可读性和可维护性。

FastAPI-SQLAlchemy充当桥梁,将FastAPI与SQLAlchemy无缝连接。 它简化了集成过程,使您可以更轻松地在 FastAPI 应用程序中处理数据库操作。 让我们分解要点并为您提供一个实践示例。

现在,让我们创建一个 FastAPI 应用程序并使用 fastapi_sqlalchemy 扩展集成 SQLAlchemy:

from fastapi import FastAPI, Depends, HTTPException
from fastapi_sqlalchemy import SQLALCHEMY_DATABASE_URL, SQLAlchemyapp = FastAPI()
DATABASE_URL = "sqlite:///./test.db"database = SQLAlchemy(DATABASE_URL)class Item(database.BaseModel):__tablename__ = "items"id = database.Column(database.Integer, primary_key=True, index=True)name = database.Column(database.String, index=True)def get_db():db = database.SessionLocal()try:yield dbfinally:db.close()

在上面的示例中,我们创建了一个 FastAPI 应用程序并初始化了 FastAPI-SQLAlchemy 扩展。此外,我们定义了一个简单的 SQLAlchemy 模型 Item 来表示数据库中的项目。现在,让我们使用 FastAPI-SQLAlchemy 实现 CRUD(创建、读取、更新、删除)操作:

from sqlalchemy.orm import Session# Create an item
@app.post("/items/")
def create_item(item: Item, db: Session = Depends(get_db)):db.add(item)db.commit()db.refresh(item)return item# Get a specific item by ID
@app.get("/items/{item_id}")
def read_item(item_id: int, db: Session = Depends(get_db)):item = db.query(Item).filter(Item.id == item_id).first()if item:return itemraise HTTPException(status_code=404, detail="Item not found")# Update an item's name
@app.put("/items/{item_id}")
def update_item(item_id: int, new_name: str, db: Session = Depends(get_db)):item = db.query(Item).filter(Item.id == item_id).first()if item:item.name = new_namedb.commit()db.refresh(item)return itemraise HTTPException(status_code=404, detail="Item not found")# Delete an item
@app.delete("/items/{item_id}")
def delete_item(item_id: int, db: Session = Depends(get_db)):item = db.query(Item).filter(Item.id == item_id).first()if item:db.delete(item)db.commit()return {"message": "Item deleted successfully"}raise HTTPException(status_code=404, detail="Item not found")

这些是基本的 CRUD 操作,但它们展示了 FastAPI-SQLAlchemy 为数据库交互带来的简单性。函数参数中的 Depends(get_db) 确保每个路由都可以访问数据库会话。

参阅 : 亚图跨际
http://www.lryc.cn/news/322839.html

相关文章:

  • centos系统ssh7.4升级9.6
  • excel所有知识点
  • 显卡基础知识及元器件原理分析
  • Spark Rebalance hint的倾斜的处理(OptimizeSkewInRebalancePartitions)
  • Vue 3中实现基于角色的权限认证实现思路
  • Visual Studio 2022进行文件差异比较
  • 1.2 编译型语言和解释型语言的区别
  • C语言-常量
  • 开源的OCR工具基本使用:PaddleOCR/Tesseract/CnOCR
  • vue3实现输入框短信验证码功能---全网始祖
  • [C#]winformYOLO区域检测任意形状区域绘制射线算法实现
  • 个人网站制作 Part 14 添加网站分析工具 | Web开发项目
  • 数据按设定单位(分辨率)划分的方法
  • Ubuntu 搭建gitlab服务器,及使用repo管理
  • QT(19)-QNetworkRequest
  • 基于Vue的社区旧衣回收利用系统的设计与实现
  • 【网站项目】291校园疫情防控系统
  • win git filter-repo教程
  • Redis相关操作高阶篇--集群搭建
  • JNDI注入原理及利用IDEA漏洞复现
  • 大数据,或称巨量资料
  • windows上打开redis服务闪退问题处理
  • 分布式锁简单实现
  • BM23 二叉树的前序遍历
  • 阿里云代理仓库地址
  • nginx的location规则与其他功能
  • 用汇编进行字符串匹配
  • 回归预测 | Matlab基于SAO-BiLSTM雪融算法优化双向长短期记忆神经网络的数据多输入单输出回归预测
  • mysql数据库的索引管理
  • VUE+Vant实现H5组织架构选人选公司组件