Pythonその他

FastAPIでAzure SQL Databaseに接続してみた

PythonのプログラムからAzure SQL Databaseに接続するには、ODBCドライバをインストールし、pyodbcパッケージやsqlalchemyパッケージをインストールすればよい。

今回は、FastAPIを利用したPythonのプログラムからAzure SQL Databaseに接続し、データを取得してみたので、その手順を共有する。

前提条件

下記サイトの手順に従って、Linux系のOS(Ubuntu)上のPythonの仮想環境(venv)でFastAPIを利用できること。

Linux系のOS(Ubuntu)上のPythonの仮想環境(venv)でFastAPIを利用してみたPythonでは、FastAPIを利用することで、Rest APIサービスを作成することができる。 Rest APIサービスについ...

やってみたこと

  1. Microsoft ODBC 18のインストール
  2. pyodbc、sqlalchemyパッケージのインストール
  3. サンプルプログラムの作成と実行

Microsoft ODBC 18のインストール

PythonのプログラムからAzure SQL Databaseに接続するには、あらかじめODBCドライバをインストールしておく必要がある。

その手順は、以下のサイトの「Microsoft ODBC 18」、「Ubuntu」タブを参照のこと。
Microsoft ODBC Driver forSQL Serverをインストールする(Linux)

Azure Portalを起動し、Linux系のOS(Ubuntu)をもつ仮想マシンにログイン後、以下のコマンドを実行すればよい。

実際にコンソール上で実行した内容は、以下の通り。
Microsoft ODBC 18のインストール_1

Microsoft ODBC 18のインストール_2 Microsoft ODBC 18のインストール_3 Microsoft ODBC 18のインストール_4



Code VillageはJavaScriptを中心としたサポート体制が充実したプログラミングスクールだったJavaScriptや、JavaScriptのフレームワーク「React」「Vue」を中心にオンラインで学習できるプログラミングスクール...

pyodbc、sqlalchemyパッケージのインストール

PythonのプログラムからAzure SQL Databaseに接続するには、あらかじめpyodbcパッケージとsqlalchemyパッケージをインストールしておく必要がある。その手順は、以下の通り。

1) 仮想環境(venv)である仮想環境(test1)を起動する。
pyodbc、sqlalchemyパッケージのインストール_1

2)「pip install pyodbc」コマンドで、pyodbcパッケージをインストールする。
pyodbc、sqlalchemyパッケージのインストール_2

3)「pip install sqlalchemy」コマンドで、sqlalchemyパッケージをインストールする。
pyodbc、sqlalchemyパッケージのインストール_3

4) インストール済のpyodbc, sqlalchemyを確認した結果は、以下の通り。
pyodbc、sqlalchemyパッケージのインストール_4



「DroidKit」はAndroid端末のデータ復元や画面ロック解除等が行える便利なツールだった「DroidKit」は、画面ロック解除、FRPバイパス、データ復元、システム修復、および4つのより効果的なツールを含んでいて、ほぼすべて...

サンプルプログラムの作成と実行

作成したサンプルプログラムの内容は、以下の通り。

なお、上記接続先の「ODBC Driver 18 for SQL Server」は、以下の赤枠部分を記載している。
サンプルプログラムの作成と実行_0_1

また、サーバー名・データベース名・ユーザー名・パスワードは、以下の赤枠部分を記載している。
サンプルプログラムの作成と実行_0_2

さらに、上記プログラムを作成中に発生したエラー解決のために参照したサイトは、以下の通り。
https://stackoverflow.com/questions/75464271/attributeerror-str-object-has-no-attribute-execute-on-connection

https://stackoverflow.com/questions/35359969/typeerror-tuple-indices-must-be-integers-not-str

上記サンプルプログラムを実行した結果は、以下の通り。

1) SQL DatabaseのUSER_DATAテーブルの内容は、以下の通り。
サンプルプログラムの作成と実行_1

2)「uvicorn main:app –reload」コマンドで、Uvicornを使用したFastAPIアプリケーションを実行する。
サンプルプログラムの作成と実行_2

3) 別セッションから「http://127.0.0.1:8000/users」にアクセスした結果は以下の通りで、1)でSQLを実行したときと同じデータがJSON形式で出力されていることが確認できる。
サンプルプログラムの作成と実行_3

なお、別セッションの起動方法は、以下の記事の「FastAPIを利用したプログラムの実行」を参照のこと。

Linux系のOS(Ubuntu)上のPythonの仮想環境(venv)でFastAPIを利用してみたPythonでは、FastAPIを利用することで、Rest APIサービスを作成することができる。 Rest APIサービスについ...

要点まとめ

  • PythonのプログラムからAzure SQL Databaseに接続するには、ODBCドライバをインストールし、pyodbcパッケージやsqlalchemyパッケージをインストールすればよい。