Open3
DevcontainerでFastAPIを使ったWebAPI開発
pipでrootユーザーはだめって怒られる場合
Dockerfileに以下を追記
ENV PIP_ROOT_USER_ACTION=ignore
未解決
devcontainerをリビルドすると以下のメッセージが出るようになった。
しかし、動いてるし解決方法もわからないので放置
エラー: タスク タイプ 'docker-build' は登録されていません。対応するタスク プロバイダーを提供する拡張機能がインストールできていませんか?
エラー: タスク タイプ 'docker-run' は登録されていません。対応するタスク プロバイダーを提供する拡張機能がインストールできていませんか?
レスポンスでdatetimeを返す
class Group(Base):
__tablename__ = 'groups'
id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(String(100), nullable=False)
description = Column(Text, nullable=True)
created_by = Column(Integer, ForeignKey('users.id'), nullable=False)
created_at = Column(DateTime, default=now())
updated_at = Column(DateTime, default=now(), onupdate=now())
このようなモデルの場合、datetimeを文字列に変換する必要がある
レスポンスモデルとfieldvaridatorを使うといい感じに実装できる
class GroupResponse(BaseModel):
id: int
name: str
description: str
created_by: int
created_at: datetime
updated_at: datetime
class Config:
orm_mode = True
@field_validator('created_at', 'updated_at')
@classmethod
def parse_datetime(cls, value: datetime) -> str:
return value.isoformat()
@app.get("/group", response_model=GroupResponse)
async def get_group(db: Session = Depends(get_db)):
group = db.query(Group).filter(条件式)
return group
こうするとGroupをGroupResponseに変換し、jsonに変換するときにdatetimeを文字列にしてくれる