我正在使用 Flask 和 SQLAlchemy 構建一個 Web API,以將資料推送到 MySQL 資料庫。每當我向會話添加一個物件“Project”并提交它時,我都會收到以下錯誤:
result[key] = self._cmysql.convert_to_mysql(value)[0] _mysql_connector.MySQLInterfaceError: Python 型別元組無法轉換
我試圖提交的課程:
class Project(Base):
__tablename__ = 'project'
id = Column(Integer, primary_key=True, autoincrement=True)
title = Column(String(255), unique=True, nullable=False)
client = Column(String(255), unique=False, nullable=False)
work_week = Column(Integer, unique=False, nullable=False)
start_date = Column(Date, unique=False, nullable=False)
end_date = Column(Date, unique=False, nullable=True)
description = Column(String(255), unique=False, nullable=True)
def __init__(self, title, client, work_week, start_date, end_date, description):
self.title = title
self.client = client
self.work_week = work_week
self.start_date = start_date,
self.end_date = end_date,
self.description = description
用于(反)序列化上述類的 MarshMallow 架構:
class ProjectSchema(Schema):
id = fields.Integer()
title = fields.Str()
client = fields.Str()
work_week = fields.Integer()
start_date = fields.Date()
end_date = fields.Date()
description = fields.Str()
最后是在運行時生成帶有值的錯誤的方法:
def post_project(project: str): '{"title":"Project X","client":"Klant X","work_week":40,"start_date":"2021-11-08","end_date":"2021-11-15","description":"Dit is een voorbeeld."}'
schema = ProjectSchema() schema: <ProjectSchema(many=False)>
project_data = schema.loads(project) {'end_date': datetime.date(2021, 11, 15), 'start_date': datetime.date(2021, 11, 8), 'description': 'Dit is een voorbeeld.', 'title': 'Project X', 'client': 'Klant X', 'work_week': 40}
result = Project(**project_data) <api.models.project.Project object at 0x0000023271C0B640>
session.add(result)
session.commit() <-- ERROR
return '', 200
我很困惑為什么它會抱怨無法轉換的元組。任何人都可以對這個問題有所了解嗎?
謝謝。
uj5u.com熱心網友回復:
在你的Project.__init__, 你有
...
self.start_date = start_date,
self.end_date = end_date,
...
請注意行尾的逗號,它將這些值轉換為元組。
甚至有必要__init__像這樣重新實作嗎?一個 inBase應該已經將 kwargs 分配給各自的成員,所以也許您可以通過完全洗掉該方法來最好地解決您的問題......
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/358961.html
標籤:Python 烧瓶 sqlalchemy
上一篇:為什么在此用于Flask的代碼中出現“NameError:name'_name_'isnotdefined”?
下一篇:啟動后燒瓶運行腳本
