タグ

fastapiとsqlalchemyに関するreboot_inのブックマーク (2)

  • SQLAlchemy同期/非同期の比較 - Qiita

    PythonのフレームワークであるFastAPIを触る機会があって、その中で非同期プログラミングの存在を知りました。 非同期プログラミングについて色々調べていくと、DB接続も非同期処理に対応してきていることが分かり、PythonSQLライブラリで有名なSQLAlchemyもバージョン1.4から非同期処理に対応しているようです。 時代は非同期プログラミングみたいですね。 ただSQLAlchemyの非同期処理の記事がまだ少なく、同期処理から非同期処理に変えるときに、苦労しそうなので、今回はSQLAlchemy同期処理と非同期処理で設定やクエリがどう違うの比較しようと思います。 SQLAlchemyにはcoreとormがありますが、ここではormで書いていきます。 APIにはFastAPIDBはPostgreSQLを使っていきます。 動作確認用コードは下記リポジトリに置いています。 同期処理

    SQLAlchemy同期/非同期の比較 - Qiita
  • FastAPI+SQLAlchemyで非同期WebAPI

    少し前にSQLAlchemy 1.4がリリースされました。 このSQLAlchemy 1.4には大きな特徴として次の2点があります。 SQLAlchemy ORMでこれまでの記法(1.x Style)に加えて、2.0 Styleと呼ばれる新しい記法に対応 CoreとORMの両方でイベントループを使った非同期処理に対応 今後のロードマップでは、SQLAlchemy 2.0では2.0 Styleのみがサポートされます。 また、イベントループを使った非同期処理もこの数年で一気に広まってきました。 SQLAlchemyが対応したこともこの流れをさらに加速させると思います。 そこで最近よく利用しているFastAPIと組み合わせて、SQLAlchemy 2.0 Styleを使った非同期Web APIのサンプルプロジェクトを用意しました。 コードはrhoboro/async-fastapi-sqlalc

    FastAPI+SQLAlchemyで非同期WebAPI
    reboot_in
    reboot_in 2022/05/19
    “Sessionを取得するのにwith session()とwith session.begin()がある。 後者はトランザクションが開始されていて、withブロックを抜ける際に自動でコミット(またはロールバック)が行われます。”
  • 1