ようこそ、第2日のデジタルオーシャンの12日間へ!昨日、私たちは誕生日リマインダーサービスの構築を始めました。これは、今後の誕生日のためにSMS通知を送信するシンプルなアプリです。🎉 デジタルオーシャンにPostgreSQLデータベースを設定し、連絡先の詳細を保存しました。
今日は、Pythonを使ってそのデータベースに接続し、プロジェクトを設定して敏感な認証情報を安全に保つ方法を見ていきます。
この記事の終わりまでには、データベースから安全にデータを取得し、デジタルオーシャンでホストする際にスケールの準備ができているPythonスクリプトを手に入れることができます。
✨ なぜこのステップ?
データベースの設定は始まりに過ぎません。意味のあるアプリを構築するためには、そのデータにプログラム的にアクセスする方法が必要です。PythonはPostgreSQLデータベースに接続するのを簡単にしてくれますし、pg8000のようなライブラリの助けを借りれば、数行のコードでPostgreSQLデータベースを扱うことができます。
安全を保つために、データベースの資格情報を.env
ファイルに保存し、python-dotenvを使用してスクリプトに読み込むことにします。これにより、資格情報がスクリプトにハードコーディングされることがなくなり、アプリを共有したり展開したりする際に安全性が向上します。
🚀 学べること
今日の計画は以下の通りです:
- 機密資格情報を
.env
ファイルに保存します。 python-dotenv
を使用して、これらの資格情報をスクリプトに読み込みます。- Pythonスクリプトを書いて、
pg8000
を使用してPostgreSQLデータベースに安全に接続します。 contacts
テーブルからデータを取得して表示します。
これを終える頃には、アプリのロジックを構築するためのしっかりとした基盤ができるでしょう。
🛠 必要なもの
始める前に、必要なものは以下の通りです:
- 1日目に設定したデータベース。 TODO: 1日目のURLへのリンク
- ローカルマシンにPythonがインストールされていること(Python 3.8以上を推奨)。
🧑🍳 2日目のレシピ: PythonでPostgreSQLに接続する
ステップ1: 必要なライブラリをインストールする 📦
PythonをPostgreSQLに接続し、資格情報を安全に保つために、2つの重要なライブラリを使用します:
- pg8000: PostgreSQLデータベースに接続し、操作するための純粋なPythonライブラリです。
- python-dotenv: データベースのユーザー名やパスワードなどの機密資格情報を
.env
ファイルから読み込むためのユーティリティで、スクリプトにハードコーディングする必要がありません。
さあ、今すぐインストールしましょう。ターミナルでこのコマンドを実行してください:
プロのヒント: 仮想環境を使用している場合(常に良いアイデアです!)、上記のコマンドを実行する前に仮想環境をアクティブにして、依存関係を整理してください。
ステップ2: .envファイルを作成する 📂
プロジェクトディレクトリに、.envという名前のファイルを作成します。ここにデータベースの認証情報を保存します。次の内容を追加してください:
プレースホルダーの値を1日目からの認証情報に置き換えます。
プロのヒント: 認証情報が誤ってバージョン管理にプッシュされないように、.env
を.gitignore
ファイルに追加してください。
ステップ3: Pythonスクリプトを作成する 🐍
connect_to_db.py
という新しいファイルを作成し、python-dotenv
を使用して.env
から認証情報を読み込み、データベースに接続するスクリプトを設定します。
始めるためのコードは次のとおりです:
このスクリプトは、いくつかの重要なことを行います:
- あなたの
.env
ファイルから安全に認証情報を読み込みます。 - データベースへの接続を確立するには、
pg8000.connect()
を使用します。 - 結果に応じて成功またはエラーメッセージを表示します。
ステップ4: 接続をテスト ✅
さて、すべてが正常に機能することを確認しましょう。スクリプトを実行します:
すべてが正しく設定されていれば、次のように表示されます:
エラーが発生した場合:
- .envファイルの値を再確認してください。
- データベースの信頼されたソースにあなたのIPアドレスが追加されていることを確認してください(1日目のステップ6を参照)。
ステップ5: データベースからデータを取得 🔍
さて、データを取得するためにスクリプトを拡張しましょう。connect_to_db.py
スクリプトを次のように更新します:
このスクリプトは現在:
- 連絡先テーブルからすべてのレコードを取得するクエリを実行します。
- 各レコードをコンソールに印刷します。
注意: テーブルが空でも心配ありません! スクリプトがエラーなしで実行されることを確認できます。テストのために、psql
(またはお好みのツール)を使用してデータベースを開き、このSQLコマンドを実行することでサンプル連絡先をすぐに追加できます:
psqlの使い方を復習したい場合や、pgAdminやTablePlusのようなUIツールを探求したい場合は、Day 1の指示を確認してください。
🎁 まとめ
今日は以下のことを達成しました:
✅ 必要なPythonライブラリをインストールしました。
✅ Pythonを使用してDigitalOceanのPostgreSQLデータベースに接続しました。
✅ 簡単なクエリでcontacts
テーブルからデータを取得しました。
次に:明日、今後の誕生日を見つけてSMS通知を送信するロジックを追加します。Twilioを使用します。ここからアプリが活気づき始めます—お楽しみに!🚀
Source:
https://www.digitalocean.com/community/tutorials/connecting-to-postgresql-database-with-python