1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Twitterクローンを作ります #3 DBの設定

Posted at

前回はユーザー登録情報を画面からAPIへ送信するところまで作成しました。
今回はDBとの接続部分を行っていきます。

MongoDBのセットアップ

ベースにしているudemyの講座と同様に、DBにはMongoDBを利用していこうと思います。

ユーザー登録がまだの場合の手順を記載しますので、すでに登録済みの方は適宜読み飛ばしてください。
https://www.mongodb.com/ にアクセスして "Start Free" をクリックします。

スクリーンショット 2022-03-12 14.56.16.png

Googleアカウントでのサインアップか、名前等を直接入力して登録する方法を選択できます。お好みの方を選択して登録してください。

スクリーンショット 2022-03-12 14.56.35.png

利用規約の同意等の画面を進めていくと次の画面が表示されると思います。今回はFreeプランで進めていきますので、右端の"Create"ボタンをクリックします。

スクリーンショット 2022-03-12 15.01.41.png

次に、クラスタ作成画面が表示されます。
"Cloud Provider & Region"はお好みのものを選択してください。僕は"aws"の"Tokyo(ap-northeast-1)"を選択しました。
"Cluster Tier" と "Additional Settings" はデフォルトのままで構いません。
"Cluster Name" は "ToittaCluster" としました。
入力が完了したら "Create Cluster" をクリックします。

スクリーンショット 2022-03-12 15.09.18.png

今度は "Security Quickstart" 画面が表示されます。
今回は認証方法に "Username and Password" を利用しようと思いますのでこちらを選択してください。僕はユーザー名を "admin" とし、パスワードに適当な文字列を設定しました。

スクリーンショット 2022-03-12 15.21.16.png

その下にある "IP Access List" はアクセス可能なIPアドレスを指定します。本来は適切に設定すべきではありますがここでは一旦 "0.0.0.0/0" のみを指定してどこからでもアクセスできるようにしておきます。

ここまで完了したらクラスタがデプロイされて利用可能になるはずです。

クラスタ名の横の "Connect" ボタンをクリックし、"Connect your application" を選択すると接続情報を表示してくれます。
今回はPythonから利用するので、"DRIVER" を "Python", "VERSION" を "3.12 or later" にして表示される文字列をメモしておきましょう。

これでMongoDBのセットアップは完了です。

Python側のセットアップ

ここからはPython側のセットアップを行っていきます。
まずは下記のように requirements.txt に pymongo を追加していきます。

server/requirements.txt
Flask
pymongo[srv]

下記を実行しpymongoのインストールとconstraints.txtの更新をしておきます。

$ cd /path/to/project/server
$ pip install -r requirements.txt -c constraints.txt
$ pip freeze > constraints.txt

これでPythonからMongoDBが利用可能になっているはずなので確認しておきましょう。

$ python
>>> from pymongo.mongo_client import MongoClient
>>> from pymongo.server_api import ServerApi
>>> client = MongoClient("mongodb+srv://admin:XXXXXXX@toittacluster.YYYYYYY.mongodb.net/myFirstDatabase?retryWrites=true&w=majority", server_api=ServerApi('1'))
>>> db = client.test_database
>>> test_collection = db.test_collection
>>> result = test_collection.insert_one({"name": "hoge", "value": "fuga", "age": 100})

MongoClient の引数には先程メモした値を利用します。admin:XXXXXXXの部分は設定したMongoDBアクセス用のIDとパスワードに書き換えてください。
上記コードを実行したあとでMongoDBの画面へ行くとデータが追加されていることが確認できると思います。

スクリーンショット 2022-03-12 15.59.29.png

これでDBのセットアップが完了しました。次回からユーザー登録機能の続きを実装していきます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?