我是 FastAPI 的新手,正在玩弄以了解該框架。我正在嘗試將資料插入到我的資料庫中,但我遺漏了一些東西。
這是我的模型:
from datetime import datetime
from pydantic import BaseModel
class Article(BaseModel):
id: int
title: str
slug: str
content: str
author: str
date: datetime
class InArticle(BaseModel):
title: str
slug: str
content: str
author: str
這是邏輯
@app.post("/articles", response_model=InArticle)
async def create_article(article: InArticle):
cursor = connexion.cursor()
article_obj = (InArticle(
title=article.title,
slug=article.slug,
content=article.content,
author=article.author
))
db_query = """INSERT INTO Article (title, slug, content, author)
VALUES (?, ?, ?, ?)"""
cursor.execute(db_query, article_obj)
connexion.close()
return article
我收到此錯誤:
cursor.execute(db_query, article_obj)
ValueError: parameters are of unsupported type
我錯過了什么?
uj5u.com熱心網友回復:
SQLAlchemy 抱怨你給它一個單一的article_obj- 它不知道如何處理。如果您計劃手動發出查詢(您可能想查看SQLModel或使用SQLAlchemy 的 ORM),您將不得不單獨提供引數。
要使用您提供的語法,您應該手動提供值:
cursor.execute(db_query, article.title, article.slug, article.content, article.author)
.. 或改為使用命名引數:
db_query = """INSERT INTO Article (title, slug, content, author)
VALUES (:title, :slug, :content, :author)"""
# .. which you can then expand automagically
cursor.execute(db_query, **article_obj.dict())
# **article_obj.dict() expands it to title=article_obj.title, ..etc
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/318424.html
