Open4

python

bz0bz0

配列

  • リスト:ミュータブル(変更可)でインデックス(番号)で要素にアクセス
  • タプル:イミュータブル(変更不可)でインデックス(番号)で要素にアクセス
  • 辞書:ミュータブルで要素へのアクセスは値に一意なキーでアクセス
  • 集合:要素へのアクセスは値に一意なキーで行いますが同じ要素を一つしか持てない

https://qiita.com/taro-ari/items/9f54536fe3c623813db1

bz0bz0

fastapi

  • response_model
  • BaseModel
    • スキーマを作る際、BaseModelを親クラスにし型チェック可能にする
      • class Hoge(BaseModel):
  • def func(a:int, b:bool, c:str)
    • 引数の型指定可能
  • orm_mode = True
    • DBから取得してきたORMオブジェクトをresponse_modelに引き渡しできるようにする為のもの
    • v2ではfrom_attributes = True
class User(UserBase):
   id: int
   is_active: bool
   items: List[Item] = []

   class Config:
       orm_mode = True
bz0bz0

作成日・更新日

モデル

    created_at = Column(
        DateTime(timezone=True), nullable=False, server_default=func.now()
    )
    updated_at = Column(
        DateTime(timezone=True),
        nullable=False,
        server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"),
    )

スキーマ

created_at: Optional[datetime] = None  # デフォルト値None
updated_at: Optional[datetime] = None  # デフォルト値None
bz0bz0
  • スキーマ
    • ユニオン:複数の型を受け入れることができる
      • getAllResponseSchema = Union[getAllIssueResponse, ErrorResponse]
    • Union[IssueOnlyId, Issue]
      • Unionは左から先に合致するかチェックしていくので左に優先したいスキーマを置く
  • オブジェクトの参照渡しを回避
    • import copyしてcopy.deepcopy(深いコピー)かcopy.copy(浅いコピー)