PUT 和 DELETE 操作

FastAPI 入门

Matt Eckerle

Software and Data Engineering Leader

PUT vs. DELETE

PUT 操作

  • 传统用途:更新现有对象

  • 参数可在查询字符串或请求体中发送

  • 需要应用或框架

    • cURLrequests
api = "http://moviereviews.co/reviews/1"
body = {"text": "A fantastic movie!"}
response = requests.put(api, json=body)

DELETE 操作

  • 传统用途:删除现有对象

  • 参数可在查询字符串或请求体中发送

  • 需要应用或框架

    • cURLrequests
api = "http://moviereviews.co/reviews/1"
response = requests.delete(api)
FastAPI 入门

引用现有对象

  • 无 ORM,应用需将对象映射到 ID
  • 数据库 ID:唯一标识符
  • 数据库 ID 的 _id 约定
    • review_id:表 reviews,列 id
    • 在带 ORM 的框架中也用此约定
from pydantic import BaseModel

class DbReview(BaseModel):
    movie: str
    num_stars: int
    text: str
    # Reference database ID of Reviews
    review_id: int
FastAPI 入门

处理 PUT 操作

用于更新影评的 PUT 端点:

  • 端点:/reviews
  • 输入:DbReview(见上一页)
  • 输出:DbReview
@app.put("/reviews", response_model=DbReview)
def update_review(review: DbReview):
    # Update the movie review in the database
    db_review = crud.update_review(review)
    # Return the updated review
    return db_review
FastAPI 入门

处理 DELETE 操作

用于删除影评的 DELETE 端点:

  • 端点:/reviews
  • 输入:DbReview
  • 输出:{}
@app.delete("/reviews")
def delete_review(review: DbReview):
    # Delete the movie review from the database
    crud.delete_review(review)
    # Return nothing since the data is gone
    return {}
FastAPI 入门

开始练习吧!

FastAPI 入门

Preparing Video For Download...