並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 42件

新着順 人気順

sqlalchemyの検索結果1 - 40 件 / 42件

タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。

sqlalchemyに関するエントリは42件あります。 pythonSQLAlchemyDB などが関連タグです。 人気エントリには 『PythonのORMライブラリsqlalchemyで利用可能なコネクションプーリングの実装について調べてみた | DevelopersIO』などがあります。
  • PythonのORMライブラリsqlalchemyで利用可能なコネクションプーリングの実装について調べてみた | DevelopersIO

    CX事業本部@大阪の岩田です。Python向けのORMライブラリsqlalchemyは標準でコネクションプーリングの実装が組み込まれており、create_engine()を呼出す際の名前付き引数poolclassの指定によってコネクションプーリングの実装を切り替えることができます。先日コネクションプーリングの実装について調べる機会があったので、内容をご紹介します。 環境 今回利用した環境です。 OS X 10.14.6 Python 3.8.2 sqlalchemy 1.3.16 pymysql 0.9.3 利用できるコネクションプーリングの実装 sqlalchemyは標準で以下のコネクションプーリングの実装を提供しています。 QueuePool NullPool SingletonThreadPool StaticPool AssertionPool 例としてNullPoolを使う場合は

      PythonのORMライブラリsqlalchemyで利用可能なコネクションプーリングの実装について調べてみた | DevelopersIO
    • SQLAlchemy 向け Google Cloud Spanner 言語 | Google Cloud 公式ブログ

      ※この投稿は米国時間 2021 年 12 月 11 日に、Google Cloud blog に投稿されたものの抄訳です。 このたび、SQLAlchemy 向け Google Cloud Spanner 言語の一般提供を開始したことをお知らせします。これにより、SQLAlchemy アプリケーションは Cloud Spanner のスケール、強整合性、最大 99.999% の可用性を享受できます。SQLAlchemy は Python SQL ツールキットおよびオブジェクト リレーショナル マッパーとして、SQL の機能と柔軟性をアプリケーション デベロッパーに提供します。オブジェクト リレーショナル マッパー(ORM)により、オブジェクト モデルとデータベース スキーマを明確に分離して開発できるほか、基盤となる SQL とオブジェクト リレーションの詳細がユーザーにもわかりやすくなってい

        SQLAlchemy 向け Google Cloud Spanner 言語 | Google Cloud 公式ブログ
      • 【PythonのORM】SQLAlchemyで基本的なSQLクエリまとめ - Qiita

        SQLAlchemy1.2の基本的なクエリをまとめました! python初心者以上向けの記事です。 改めて読み返してみると、直した方が良さそうな箇所や、この機能書かないんかいってのがあるので修正予定です。 記述内容 ORMについて、動かしてみるところまで、select, limit, orderby, distinct, join, leftjoin, in, insert, update, delete, union, unionAll, sql吐き出し, sqlを直接実行について また、flask-sqlalchemyでは実行を試していません。 SQLAlchemyとは pythonのORMモジュール。 session.query(User).all() このようにSQL操作ができる。 SQLをクラスとして扱えるようにしたもの。 使用する理由は、 ・SQLインジェクション対策がサポート

          【PythonのORM】SQLAlchemyで基本的なSQLクエリまとめ - Qiita
        • [Python]SQLAlchemyのよくやる使い方まとめ

          最近では、PythonのWebアプリのバックエンドで使うことが多く、 そのRDBのDriverとして、SQLAlchemyを採用することが多いです。 (使っているDBはpostgreqlです。) 今回は、SQLAlchemyの実際によく使う使い方をまとめてみました。 どうやって実装したっけ?とよく昔のプロジェクトのソースコードを参照することが多かったので、自分向けのメモとしても残しておきます。 Model編 Base Class 以下のような基底クラスを定義しておき、それを継承させると便利です。 from sqlalchemy.ext.declarative import as_declarative, declared_attr @as_declarative() class Base: @declared_attr def __tablename__(cls): return cls.

            [Python]SQLAlchemyのよくやる使い方まとめ
          • 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
            • Flask SQLAlchemy で REST API を作ってみた | DevelopersIO

              SQLAlchemyを何となくで使用していたのでこの機会に入門してみました。 Flask-SQLAlchemy を用いてRDBをORMとして扱い、REST APIを作成します。 ORMとは ORM(Object-Relational Mapping)とは、データベースとオブジェクト指向プログラミング言語とのマッピングを行うことを指します。 ただこれだけ聞くと、イメージしづらいですが、簡単に言うと、SQL文を直接記述せずに、通常のオブジェクトを扱うようにデータベースを扱うことができるということです。 Pythonでは、ORMモジュールの1つに SQLAlchemy があります。 SQLAlchemy SQLAlchemyは、Pythonでポピュラーに使用されているORMライブラリの1つのようです。 SQLite、Postgresql、MySQL、Oracleなどさまざまなエンジンにも対応して

                Flask SQLAlchemy で REST API を作ってみた | DevelopersIO
              • zzzeek : Patterns Implemented by SQLAlchemy

                Mike Bayer is the creator of many open source programming libraries for the Python Programming Language, including SQLAlchemy, Alembic Migrations, Mako Templates for Python, and Dogpile Caching. Dilly and Posy were dedicated members of the team. Dilly and Posy were best of friends, and after a few years in different worlds are together again. We will always love and miss you Dilly and Posy! Catego

                • SQLAlchemyの基本的な使い方 - Qiita

                  SQLAlchemyとは SQLAlchemyとは,Pythonの中でよく利用されているORMの1つ. ORMとは,Object Relational Mapperのことで,簡単に説明すると,テーブルとクラスを1対1に対応させて,そのクラスのメソッド経由でデータを取得したり,変更したりできるようにする存在. ORMの利点とは 1. 異なるDBの違いを吸収してくれる DBの種類によらず,同じソースコードで操作できるので,複数のDBを併用する場合や,DBを変更する場合にも,コードの書き換えの必要がない. 2. SQLを書かなくてもよい MySQLや,SQLite,PostgreSQLなどのDBを操作するにはSQLを使うが,SQLAlchemyを使うと,SQLを直接記述することなしに,DBを"Pythonic"に操作できる. SQLAlchemyの使い方 簡単な流れとしては,どのDBにどうやって

                    SQLAlchemyの基本的な使い方 - Qiita
                  • 【修正版】Django + SQLAlchemy: シンプルWay

                    Simple Way with Django + SQLAlchemy AT PyCon JP 2020 https://pycon.jp/2020/timetable/?id=203756 質疑応答 > Ryuji Tsutsui から全員に: 02:58 PM > INNNER JOIN > Nが1個多い? ほんとだ。slideshareにあげた資料、直せません! > Taku Shimizu から全員に: 03:00 PM > 「ドキュメントに記載されていない」なかなかのパワーフレーズですね でしょー > uranusjr から全員に: 03:04 PM > g2の別名はT3になるのはなぜですか? Djangoが自動的にテーブルを2回JOINすることもあって、そういう場合自動的にテーブル名の別名が付けられます。T2,T3,T4と連番で増えていきます。 たぶん、登場する3つ目のテーブル

                      【修正版】Django + SQLAlchemy: シンプルWay
                    • SQLAlchemyの基本的な使い方 - Qiita

                      SQLAlchemyとは SQLAlchemyとは,Pythonの中でよく利用されているORMの1つ. ORMとは,Object Relational Mapperのことで,簡単に説明すると,テーブルとクラスを1対1に対応させて,そのクラスのメソッド経由でデータを取得したり,変更したりできるようにする存在. ORMの利点とは 1. 異なるDBの違いを吸収してくれる DBの種類によらず,同じソースコードで操作できるので,複数のDBを併用する場合や,DBを変更する場合にも,コードの書き換えの必要がない. 2. SQLを書かなくてもよい MySQLや,SQLite,PostgreSQLなどのDBを操作するにはSQLを使うが,SQLAlchemyを使うと,SQLを直接記述することなしに,DBを"Pythonic"に操作できる. SQLAlchemyの使い方 簡単な流れとしては,どのDBにどうやって

                        SQLAlchemyの基本的な使い方 - Qiita
                      • 【SQLAlchemy】sessionの作成はどの方法がいいのか?考えてみた - とりあえずの独り言

                        概要 sessionクラスを使う session_markerクラスを使う scoped_sessionクラスを使う(オススメ) session のクローズについて 補足(auto_flush, auto_commit設定について) 補足(トランザクションについて) 概要 SQLAlchemyでは、sessionの作成方法が複数あって結局どれがいいの?っていうのをいろいろ考えてみた。 ちなみに、Flaskなどのフレームワークを利用している場合はSQLAlchemyをラップしたFlask-SQLAlchemyなどがあるのでここら辺を利用するとsession周りは良しなにやってくれます。 フレームワークを使わないような、ツールやバッチ系などではSQLAlchemy単体で使うことも多いと思うのでそういう人向けです。 参考: SQLAlchemyのSession生成方法 - Qiita 【Pyth

                          【SQLAlchemy】sessionの作成はどの方法がいいのか?考えてみた - とりあえずの独り言
                        • FastAPI + SQLAlchemy(postgresql)によるCRUD API実装ハンズオン - Qiita

                          最終的な成果物 編集履歴 ・2021/4/23 認証関連のコードを追加して、Qiitaも更新 ・2021/4/18 全体的にリファクタリングし、Qiitaも更新 ・2020/10/24 初版 このハンズオンで実装するもの FastAPIのDocker環境(Nginxコンテナ, Applicationコンテナ, DBコンテナ) alembic環境 DBマイグレーション用のツール ユーザー情報のモデル DBに作成するテーブルの元になるもの。マイグレーションツールで使用します。 データアクセスクラス ユーザー情報のCRUDを行うAPI 2020/10/27現在 パスワードのハッシュ化とかは未考慮 各種ミドルウェア API実行前の処理を行うミドルウェア APIのテストコード テスト用のDBを作成し、テストケース実行ごとにDBロールバック、テストが全て完了したらテスト用のDB削除 CORS問題の回避

                            FastAPI + SQLAlchemy(postgresql)によるCRUD API実装ハンズオン - Qiita
                          • [小ネタ] flake8利用時にSQLAlchemyでBoolean型のフィルタを掛けるときの注意点 | DevelopersIO

                            こんにちは!DA(データアナリティクス)事業本部 インテグレーション部の大高です。 先日、SQLAlchemyを利用しているPythonの環境にflake8を導入したのですが、思いがけない問題を起こしたので、自分自身への備忘録としても残しておきたいと思います。 前提 今回の環境は以下のような環境です。 SQLAlchemyを利用したPythonプロジェクト環境 flake8を導入して、Visual Studio Codeでコードを自動チェックするようにしている 起きた問題 SQLAlchemyでフィルタを使う際に、以下のようなコードがあるとします。 users = session.query(User).filter(User.deleted == False) このようなコードはFalseとの比較演算子として==を利用しているのでflake8からお叱りをうけます。 comparison

                              [小ネタ] flake8利用時にSQLAlchemyでBoolean型のフィルタを掛けるときの注意点 | DevelopersIO
                            • FastAPI+SQLAlchemyをpytestでテスト

                              FastAPIでSQLAlchemyを利用するサンプルコードが公式ドキュメントにあります。 サンプルコードのmain.pyの重要な部分を抜粋するとこんな感じです。 app = FastAPI() # Dependency def get_db(): db = SessionLocal() try: yield db finally: db.close() @app.get("/users/", response_model=List[schemas.User]) def read_users(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): users = crud.get_users(db, skip=skip, limit=limit) return users SessionLocal()で作成したセッシ

                                FastAPI+SQLAlchemyをpytestでテスト
                              • FastAPIとSQLAlchemy によるWebサービスの実装 - PythonOsaka

                                FastAPI から SQLAlchemy を使ってデータベースを利用したRESTful Webサービスを実装してみます。

                                  FastAPIとSQLAlchemy によるWebサービスの実装 - PythonOsaka
                                • SQLAlchemy flush(), commit()の違い - Qiita

                                  PythonのO/R Mapper の1つであるSQLAlchemyを利用してテーブルのレコード操作する際に使用する flush(), commit()の使い分けについて説明します 最近、仕事で使うようになり少しずつ学習しています。 簡単に言葉で表現するなら flush():一時的にクエリ結果をデータベースに反映(ロールバック可能なので、commit()しないとクエリが無効になり、最後にcommit()する必要あり) commit():永続的にクエリの結果をデータベースに反映(レコードの追加、更新、削除の完了) それぞれの用途としては エラー時にロールバックして、データベースへの反映を無かったことにしたい場合に使うと便利なのがflush() 例えば、 session.begin() try: for item in session.query(Model).all(): session.a

                                    SQLAlchemy flush(), commit()の違い - Qiita
                                  • SQLAlchemyでテーブル設計とORMの操作

                                    SQLAlchemyとは SQLAlchemyは、PythonのORMの1つで、Pythonでは一番有名なORMでもあります。ORMとしては、SQLインジェクション対策が標準でサポートされています。ただのORMとしてではなく、テーブル設計を行うのにも非常に便利です。 ここではSQLAlchemyの使い方について紹介します。DBはPostgresqlやMySQLではなく、簡易的なはSQLiteを使用します。 ORMとは Object-Relational Mappingの略です。 オブジェクト志向言語のクラスとRDBとのマッピングを行ってくれるのがORMです。SQLをオブジェクト指向で書けるようになります。 ORMの利点をまとめると主に以下の2つの点があります。 異なるDBの違いを吸収する MySQLやPostgresqlといったデータベースの種類によらず、同じソースコードで操作できます。

                                      SQLAlchemyでテーブル設計とORMの操作
                                    • SQLAlchemyでのテーブル定義 - Qiita

                                      はじめに ここでは,SQLAlchemyを用いてテーブル定義を行うときの方法についてまとめる. 以下,dialect(DBの種類)はmysqlとする. Charset指定 __table_args__のmysql_charsetで指定することができる. 例えば,charsetをutf8mb4に指定したければ,

                                        SQLAlchemyでのテーブル定義 - Qiita
                                      • SQLAlchemyが生成するクエリを確認する | レコチョクのエンジニアブログ

                                        WIZY の開発では、Python + MySQLの構成でORマッパーに SQLAlchemy を使用しています。 SQLAlchemyは高機能なのですがまとまったドキュメントがなく、また「どのようにコードを記述したらどのようなクエリが発行されるのか」というのはDB設計やユースケースがサンプルとは異なるので、運良くマッチした情報が出て来ない限り自分でクエリ(を生成するコード)を組み立てる必要があります。 パターン1) loggingでログに出力する SQLAlchemyを利用しているアプリケーションで以下のコードを記述することでクエリをログに出力することができます。

                                          SQLAlchemyが生成するクエリを確認する | レコチョクのエンジニアブログ
                                        • FastAPI with Async SQLAlchemy, SQLModel, and Alembic

                                          FastAPI with Async SQLAlchemy, SQLModel, and Alembic This tutorial looks at how to work with SQLAlchemy asynchronously with SQLModel and FastAPI. We'll also configure Alembic for handling database migrations. This tutorial assumes you have experience working with FastAPI and Postgres using Docker. Need help getting up to speed with FastAPI, Postgres, and Docker? Start with the following resources:

                                            FastAPI with Async SQLAlchemy, SQLModel, and Alembic
                                          • SQLAlchemy 2.0 - Major Migration Guide — SQLAlchemy 2.0 Documentation

                                            Note for Readers SQLAlchemy 2.0’s transition documents are separated into two documents - one which details major API shifts from the 1.x to 2.x series, and the other which details new features and behaviors relative to SQLAlchemy 1.4: SQLAlchemy 2.0 - Major Migration Guide - this document, 1.x to 2.x API shifts What’s New in SQLAlchemy 2.0? - new features and behaviors for SQLAlchemy 2.0 Readers

                                            • How to Execute Raw SQL in SQLAlchemy | Atlassian

                                              Try now Products Featured Developers Product Managers IT professionals Business Teams Leadership Teams Featured Developers Product Managers IT professionals Business Teams Leadership Teams

                                              • SQLAlchemyのSession生成方法 - Qiita

                                                概要 SQLAlchemyのSessionの生成方法はいくつかあります。 ここではそれらの生成方法を一つ一つ説明していきます。 調査した時の各バージョン SQLAlchemy : 1.3.3 Session生成方法の種類 Sessionの生成方法には以下のような種類があります。 Sessionクラスによる生成(基本) sessionmakerによる生成 scoped_sessionによる生成 scoped_sessionによる生成(ORM編) ①Sessionクラスによる生成(基本) 基本的な生成方法です。 SessionクラスからSessionインスタンスを生成するんだから一番わかりやすいですね。 例えばこんな感じで生成します。 from sqlalchemy import create_engine from sqlalchemy.orm import Session engine =

                                                  SQLAlchemyのSession生成方法 - Qiita
                                                • FastAPIとSQLAlchemy2.0ならもう型ヒントを諦めなくていい - Sogo.dev

                                                  サチコ(Google Search Console)を眺めていたら FastAPI MySQL がそれなりに需要ありそうと思ったので、FastAPI と SQLAlchemy を組み合わせて ORM を使う方法を紹介したいと思います。最近の SQLAlchemy(1.4以降)ではマッピングされたオブジェクトに型を適用することもできるので、型ヒントを活かして型安全なコードを書くことも難しくなくなっています。 環境 Python 3.10.6 FastAPI 0.89.1 SQLAlchemy 2.0.1 Docker 20.10.13 Docker Compose v2.3.3 前提 FastAPI 公式ドキュメントの SQL (Relational) Databases のページを熟読しておいてください。 2023年1月にリリースされた SQLAlchemy 2.0を使用します。1系を使用

                                                    FastAPIとSQLAlchemy2.0ならもう型ヒントを諦めなくていい - Sogo.dev
                                                  • SQLAlchemy 2.0 の Eager load 入門 - VISASQ Dev Blog

                                                    ビザスク開発1グループ エキスパート/lite 開発チームのよしけーです! もうすぐ風来のシレン6が発売されますね。自分は初代とアスカ見参!しか経験がないのですが、14年ぶりの新作ということで久しぶりに手を出してみようかと思ってワクワクしている今日この頃です。 にしても。自分は現在30代後半なのですが、スラムダンクが映画化したり、るろうに剣心が再アニメ化したり、幽☆遊☆白書が実写化したり、紅白でポケビブラビが出たりしたりで子どもと一緒にワイワイできるコンテンツが多くていい時代ですね!自分は子どもいませんけど! 本記事について 弊社では現在、サービスの成長に伴いモノレポからのサービス分割に取り組んでいます。 サービスごとに技術スタックが多少異なるのですが、自分が担当しているサービスのバックエンドでは FastAPI を使用しています。 FastAPI のマニュアルでは SQL のツールキット

                                                      SQLAlchemy 2.0 の Eager load 入門 - VISASQ Dev Blog
                                                    • sqlalchemy で engine の作り方に注意 - Qiita

                                                      import sys import threading from random import randint from time import sleep from concurrent.futures import ThreadPoolExecutor from app.worker import worker def f(t): sleep(t) return t with ThreadPoolExecutor(max_workers=20) as executor: futures = [executor.submit(f, t) for t in [randint(1,3) for _ in range(500)]] for future in futures: future.add_done_callback(worker) result = [f.result() for f

                                                        sqlalchemy で engine の作り方に注意 - Qiita
                                                      • SQLAlchemy ORMの基本的な使い方 - Qiita

                                                        このQiitaの目的 SQLAlchemyを使うとPythonからSQLを直接操作できます。 SQLAlchemyにはcoreとORMがあるのですが、このQiitaではORMのみ扱います。 日本語のドキュメントが少なかったので、以下の書籍や公式ドキュメントで調べたことをまとめておきます。内容は順次加筆していこうと思います。 Essential SQLAlchemy - Amazon 環境 mysqlでsampledatabaseという名前の空のデータベースをあらかじめ作成しsqlalchemyでいじっていきます。 mysqlのバージョン8.0.13 Pythonのバージョンは3.7.2 実行環境はPyCharmの2018.3.4 SQLAlchemyのバージョンは1.13.11 SQLAlchemyとは / メリット / デメリット SQLAlchemyとはPythonのモジュールで、se

                                                          SQLAlchemy ORMの基本的な使い方 - Qiita
                                                        • Pythonから各種DBへ接続する方法(PEP 249)とSQLAlchemyについて - Qiita

                                                          import datetime import mysql.connector cnx = mysql.connector.connect(user='scott', database='employees') cursor = cnx.cursor() query = ("SELECT first_name, last_name, hire_date FROM employees " "WHERE hire_date BETWEEN %s AND %s") hire_start = datetime.date(1999, 1, 1) hire_end = datetime.date(1999, 12, 31) cursor.execute(query, (hire_start, hire_end)) for (first_name, last_name, hire_date) in cur

                                                            Pythonから各種DBへ接続する方法(PEP 249)とSQLAlchemyについて - Qiita
                                                          • SQLAlchemy で悲観的・楽観的排他制御 - Qiita

                                                            SQLAlchemy とは SQLAlchemyは Python の ORM で、リレーショナルデータベースをオブジェクトとして扱うとこができるライブラリです。 SQLite、MySQL、PostgreSQL、Oracle などのデータベースに使用することができます。 導入するメリットとしては、 SQL を直接記述することなく、Python オブジェクトとしてデータベースを操作できる データベースの種類によらず、同一のソースコードで複数のデータベースを併用することができる SQL インジェクション対策がサポートされている などが上げられます。 今回は SQLAlchemy と MySQL を用いて、悲観的・楽観的排他制御を実装していきます。 環境 SQLAlchemy を使用するには、以下のインストールが必要です。括弧内は今回使用したバージョンです。 Python (3.7.3) データベ

                                                              SQLAlchemy で悲観的・楽観的排他制御 - Qiita
                                                            • FastAPI+SQLAlchemyでリレーションシップを使いこなす - Qiita

                                                              class Child1(Base): __tablename__ = "child1_table" id = Column(Integer, primary_key=True) parent_id = Column(Integer, ForeignKey("parent1_table.id")) name = Column(String(255)) 公式ドキュメントでは親テーブルと子テーブルを1つのファイルに記載しています。ただ、可読性向上のために1テーブル1ファイルにしたくて、親テーブルと子テーブルのファイルを分けています。 ファイルを分割した場合、いくつかポイントがあります。 1つ目のポイントとして、parent.pyでrelationshipに指定したChildをimportする必要があります。また、linterで警告が出るので無視する設定にしておきます。 2つ目のポイントとして、

                                                                FastAPI+SQLAlchemyでリレーションシップを使いこなす - Qiita
                                                              • 【SQLAlchemy】PythonでQueryデータベースから取得,【CRUD】 - Qiita

                                                                SQLAlchemyはPythonでよくつかわれるORマッパー。DjangoのORマッパーは使ってたけどSQLAlchemyは最近よく使うようになったのでDBからのデータ取得やCRUDなどをまとめます。 以前の関連記事。Flaskで Flask SQLAlchemyを使ったDBデータ取得、作成、更新、削除を行ってます。 Djangoで同じような記事書いてたので一応リンク載せます。 今回のSQLAlchemyとはORMと言うだけであまり関係ないですが、Django ORMでもSQLAlchemyでもどちらかできればそれほど違和感なく使えるようになるかと思います。 ついでに、SQLAlchemyの方がSQLの書き方に近い感じはします。 環境 この記事の最後に補足に今回使うSQLAlchemyの環境構築書いてますのでそちらを参照。 db_sessionと言う名前に意味はないので記事や書き方によっ

                                                                  【SQLAlchemy】PythonでQueryデータベースから取得,【CRUD】 - Qiita
                                                                • SQLAlchemyを使ってPythonでORM ― SQLAlchemy Coreを知る | To Be Decided

                                                                  SQLAlchemyを使ってPythonでORMしたかったけど、そこまでたどり着かなかった記事。 この記事でSQLAlchemy Coreについて要点をおさえておいて、次回の記事でSQLAlchemy ORMに手を出す。 ORMとは ORMはObject-relational mappingの略で、和訳するとオブジェクト関係マッピング。 関係というのは関係データベース(RDB)のこと。 ORMは、RDBのレコードをプログラミング言語におけるオブジェクトとして扱う技術。 大抵は、オブジェクト指向なプログラミング言語で、1つのクラスでRDBの1テーブルを表現して、そのクラスのインスタンスでそのテーブルのレコードを表現する。 クラスの各メンバフィールドをテーブルの各カラムに対応させることで、1インスタンスで1レコードのデータを保持できる。 ORMライブラリ ORMは原始的には、プログラミング言語

                                                                  • SQLAlchemyを簡単にまとめてみた(TIPSもあるよ) - Qiita

                                                                    目標 python の SQL ツールキットである SQLAlchemy のまとめ 質問や指摘・編集リクエストは大歓迎です。よろしくお願いします。 SQLAlchemy とは?? SQLAlchemy - The Database Toolkit for Python Python で DB を操作するときに使用する ORM(Object Relational Mapper)ツール 環境準備 Docker で環境を構築 手軽に Docker で構築する version: "3" services: db: image: postgres:11.7 container_name: sqlalchemy-db ports: - 5432:5432 environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres - POSTG

                                                                      SQLAlchemyを簡単にまとめてみた(TIPSもあるよ) - Qiita
                                                                    • ORMとは?|SQLAlchemy 概要と基本の使い方

                                                                        ORMとは?|SQLAlchemy 概要と基本の使い方
                                                                      • [SQLAlchemy] one()とfirst()の違いって何?

                                                                        一目瞭然ですが、one()関数は、検索結果が1件以外の時、one_or_none()関数は、結果が2件以上ある時、sqlalchemy.orm.exc.NoResultFoundエラーが発生します。 どう使い分けるか? 違いは分かりました。 では、どう使い分けるのだろうか? 明確な決まりはありませんが、およそ以下のような使い分けになると思います。 one() / one_or_none() 必ず1件、データが取れる仕様であれば、one()を使うべきです。 こういった所の場合、下手にfirst()を使ってしまうと、仕様と異なるデータが取れたにも関わらず、後続処理が動いてしまい、データがぶっ壊れるなど、最悪の自体に陥ってしまう場合があるからです。 いっそのこと、エラーでアプリを異常終了させた方がマシなので、勇気を持って one()を使いましょう。 結果が1件又は0件になる時は、one_or_n

                                                                          [SQLAlchemy] one()とfirst()の違いって何?
                                                                        • sqlacodegenを使って既存のMySQLサーバからSQLAlchemyのテーブル定義を生成する - Qiita

                                                                          まっさらなAmazonLinux2でやるときの手順です 実行環境 OS: AmazonLinux2 (Linux version 4.14.193-149.317.amzn2.x86_64) python: Python 2.7.18 やること curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python get-pip.py pip install sqlacodegen pymysql sqlacodegen mysql+pymysql://user:password@sqlhost/dbname オプション: --outfile: 標準出力ではなく、ファイルに書き出す --tables: テーブルを指定 これで標準出力に全テーブルのSQLAlchemy定義が出力されます 公式サイトにはoursqlというのを使うと書いてあ

                                                                            sqlacodegenを使って既存のMySQLサーバからSQLAlchemyのテーブル定義を生成する - Qiita
                                                                          • SQLAlchemy同期/非同期の比較 - Qiita

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

                                                                              SQLAlchemy同期/非同期の比較 - Qiita
                                                                            • SQLAlchemyを利用して既存テーブルのメタデータを取得する - Qiita

                                                                              目的 SQLAlchemyを介して既存テーブルのカラム名やカラム型などのメタデータを取得する。 環境 動作環境 Windows 10 Home Python 3.8.5 (Anaconda) Oracle Database 18c XE 必要なライブラリ ()内は検証で使用したバージョン。 sqlalchemy (1.3.18) cx_oracle (7.2.3) 使用するテーブル create table demo_tbl ( i_col integer, f_col float, c_col char(1), d_col date, PRIMARY KEY (i_col) ) 実装 準備 エンジンインスタンス作成 RDBに接続するためのsqlalchemy.engine.Engineインスタンスを作成する。host, port, pdb-name, user, passにはそれぞれ使用

                                                                                SQLAlchemyを利用して既存テーブルのメタデータを取得する - Qiita
                                                                              • SQLAlchemyのセッション・トランザクションを理解する - Sogo.dev

                                                                                SQLAlchemy の Session や scoped_session、トランザクションに関して理解していきます。 用語おさらい セッション(Session) SQLAlchemy の Session オブジェクトは、ORM マッピングされたオブジェクトの永続化に関する操作を管理するオブジェクトです。 sqlalchemy.orm.Session を直接インスタンス化しても良いですが、実環境では sessionmaker を使うことが一般的です。sessionmaker は Session オブジェクトを作るためのファクトリで、任意の設定をした Session オブジェクトを生成することができます。 from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker engine = create_e

                                                                                  SQLAlchemyのセッション・トランザクションを理解する - Sogo.dev
                                                                                • 【Python】SQLAlchemyでMySQLに接続する - Qiita

                                                                                  今回は、Pythonで簡単にSQLを実行できるSQLAlchemyというO/Rマッパーを使用し、実際にMySQLとマッピングしてCSVファイルのデータを追加したり、CRUD操作をする方法について実装を行ったので、備忘録として残しておこうと思います。 前提 SQLAlchemyがインストールされていること mysql-connector-pythonがインストールされていること 上記モジュールがインストールされていない場合は、pipにてインストールを実行してください。

                                                                                    【Python】SQLAlchemyでMySQLに接続する - Qiita

                                                                                  新着記事