logo

Timetable

Timetable
Timetable background1Timetable background3Timetable background3
10:00
Opening
20F #pyconjp_1
Opening Relay
20F #pyconjp_2
Opening Relay
4F #pyconjp_3
Opening Relay
4F #pyconjp_4
10:20
10:20
30min
【招待講演】PythonのUTF-8化
稲田 直哉
日本語
20F #pyconjp_1
10:20
30min
Re:PandasAI:生成AIがデータ分析業務にもたらすパラダイムシフト【増補改訂版】
Ryosuke Tanno
Data Science, AI
日本語
20F #pyconjp_2
10:20
30min
Pythonで 日本語処理 入門 〜フリガナプログラムを作ろう〜
Takanori Suzuki
Data Science, AI
日本語
4F #pyconjp_3
10:20
30min
Streamlining Testing in a Large Python Codebase
Jimmy Lai
DevOps, Testing, Documentation, Packaging
EN
4F #pyconjp_4
11:10
11:10
30min
Cloudflare Workers in Pythonでサーバーレスアプリケーションを作ろう
Ryuji Tsutsui
Web Applications
日本語
20F #pyconjp_1
11:10
30min
データフレームライブラリ徹底比較
桂川大輝
Others
日本語
20F #pyconjp_2
11:10
30min
Pythonの数学機能を学ぼう!その仕組みも学ぼう!
curekoshimizu
Python Features and Development
日本語
4F #pyconjp_3
11:10
30min
Unlocking Python's Core Magic
Wei Lee
Python Features and Development
EN
4F #pyconjp_4
11:40
Lunch Break
20F, 4F Track 1~4
12:40
12:40
30min
実例から学ぶ型ヒントの活用手法
Rei Suyama
Development Practices Using Python
日本語
20F #pyconjp_1
12:40
30min
「巨人の肩の上」で自作ライブラリを作る技術
石原祥太郎
Development Practices Using Python
日本語
20F #pyconjp_2
12:40
30min
Pythonを活用したLLMによる構造的データ生成の手法と実践
柴内一宏
Data Science, AI
日本語
4F #pyconjp_3
12:40
30min
Sleuthing in Cython: Wrapping and Debugging Legacy C Libraries for Python
Maryanne Wachter
Development Practices Using Python
EN
4F #pyconjp_4
13:30
13:30
30min
SQLModel入門 〜クエリと型〜
Mizuki Sato
Web Applications
日本語
20F #pyconjp_1
13:30
30min
Rustを活用したPythonライブラリの開発
Shota Kokado
DevOps, Testing, Documentation, Packaging
日本語
20F #pyconjp_2
13:30
30min
データサイエンスのフルサイクル開発を実現する機械学習パイプライン
Cristian Kamiya
Data Science, AI
日本語
4F #pyconjp_3
13:30
30min
Playing games in the browser with WASM
Neeraj Pandey, Manoj Pandey
Video, Music, Games, Illustration
EN
4F #pyconjp_4
14:20
14:20
30min
実践Dash - 手を抜きながら本気で作るデータ可視化Webアプリの基本と応用
Shinichi Nakagawa(@shinyorke)
Web Applications
日本語
20F #pyconjp_1
14:20
30min
Pythonによるイベントソーシングへの挑戦と現状に対する考察
Masanobu Naruse
Development Practices Using Python
日本語
20F #pyconjp_2
14:20
30min
PythonとOpenCVで楽しむ物体検出!
Lina Katayose
IoT, Hardware, Network
日本語
4F #pyconjp_3
14:20
30min
The Wheelhouse of Horrors
Laszlo Kiss Kollar
Development Practices Using Python
EN
4F #pyconjp_4
14:50
Coffee Break
20F, 4F Track 1~4
15:30
15:30
30min
WEBアプリケーションにおけるAWS Lambdaを用いた大規模な非同期処理の実践
Masataka Okudera
Web Applications
日本語
20F #pyconjp_1
15:30
30min
Pythonと相互運用可能な静的型付け言語Erg
Shunsuke Shibayama
Creating Libraries and Services
日本語
20F #pyconjp_2
15:30
30min
Pythonで3Dモデリングをしてみよう: CadQuery Basic
Hiroshi Sano
Video, Music, Games, Illustration
日本語
4F #pyconjp_3
15:30
30min
Why Knowing Cython Helps in Understanding Python: A Deep Dive into Cython & PVM
Abhik Sarkar
Python Features and Development
EN
4F #pyconjp_4
16:20
16:20
30min
DjangoとFastAPIによる実践認証技術
大島和輝
Web Applications
日本語
20F #pyconjp_1
16:20
30min
Pythonで3次元CGを作りたい人のためのPyVista入門
Tetsuo Koyama
Creating Libraries and Services
日本語
20F #pyconjp_2
16:20
30min
プロダクションでのPython非同期ユースケース - Trio/Trio-Utilを中心に
Junya Fukuda
IoT, Hardware, Network
日本語
4F #pyconjp_3
16:20
30min
Getting Started with Open Source Contributions
Stefanie Molin
Community, Education
EN
4F #pyconjp_4
17:00
17:00
15min
pytest プラグインを開発して DRY に自動テストを書こう
Atsushi Inutsuka
DevOps, Testing, Documentation, Packaging
日本語
4F #pyconjp_3
#pyconjp_3 Relay
4F #pyconjp_4
17:30
Keynote (Atsuo Ishimoto)
20F Track 1~2
Keynote Relay (English)
4F #pyconjp_3
18:25
PyCon JP Association Report
20F Track 1~2
18:40
Closing
20F Track 1~2
SQLModel入門 〜クエリと型〜
Mizuki Sato
09/28 13:30 - 14:00 (Asia/Tokyo)
20F #pyconjp_1

ここ数年PythonのWeb開発において目立つ存在になっているFastAPIについて、FastAPI開発者が提供するサンプルのリポジトリでは、データ操作のためのパッケージとしてSQLModelというORMが使われています。

クラス定義はPydantic、クエリはSQLAlchemyをベースとしているSQLModelは直感的で使いやすいですが、それゆえに使い方のノウハウが少ないように思えます。

このトークでは、SQLModelの基本的な使い方を話しながらPydantic/SQLAlchemyとの違いにも触れていきます。

構成

  • SQLモデルでのモデルクラスの書き方

  • クエリの書き方

  • 静的解析ツールの設定方法

  • alembicを使ったデータベースのスキーマの変更管理

  • FastAPIのアプリ内での使い方

対象者

  • Djangoなど別のORMを使ったことがあるが、SQLModelには馴染みのない方

話さないこと

  • SQLの基本的な構文(SELCT, INSERT, JOINなど)
  • 素のPythonでの型ヒントの基本的な構文
  • 複数DBに接続する場合など応用的な使い方

description
トーク詳細 / Description

「SQLモデルでのモデルクラスの書き方」では下記を話します。

  • 基本的な型定義(int, strなど)
  • Fieldクラスのオプション(default, primary_key, indexなど)
  • 外部キー接続のある項目の型定義
    • One to Many
    • Many to Many
  • SQLAlchemyでの定義の方法との比較(よしあしではなく、単純な構文の違いとして)

「クエリの書き方」では下記を話します。

  • SELECT
    • JOIN
    • 集計関数
  • INSERT
  • UPDATE
  • DELETE
  • SQL文の確認方法
  • クエリの返り値の型ヒントの付け方

「FastAPIのアプリ内での使い方」では下記を話します。

  • FastAPI開発者が提供するサンプルのリポジトリのユーザーを作成するAPI、ユーザーを取得するAPIのリクエストが送られてからDBにアクセスし、レスポンスを返すまでの流れを解説

Mizuki Sato
Mizuki Sato

PythonでWeb開発をするのが好きです。Djangoの経験が多めです。FastAPIも好きです。

最近はアーキテクト的な仕事をする傍ら、所属会社の若手エンジニア育成プロジェクトの進行・教育教材の作成をしています。