我将创建一个Twitter克隆应用程序。 #3 配置数据库
上次已经完成了从屏幕向API发送用户注册信息的部分。
这次我们将进行与数据库的连接。
MongoDB的安装配置
我打算像Udemy的课程一样,使用MongoDB作为数据库。
请注意以下内容,仅适用于尚未完成用户注册的情况。已完成注册的用户请自行跳过此步骤。
请访问 https://www.mongodb.com/ ,点击”开始免费试用”。
您可以选择使用Google帐号进行注册,或直接输入姓名等信息进行注册。请选择您喜欢的方式进行注册。
透過繼續同意條款等畫面,您應該會看到下一個畫面。由於本次是使用免費方案,請點擊右側的「創建」按鈕。
接下来,将显示集群创建画面。
请选择您喜欢的”云服务提供商和区域”。我选择了”aws”的”东京(亚太地区-东北1)”。
“集群层级”和”其他设置”可以保持默认设置。
将”集群名称”设为”ToittaCluster”。
完成输入后,点击”创建集群”。
这次会显示”Security Quickstart”界面。
由于我们打算使用“用户名和密码”作为认证方法,请选择这个选项。我将用户名设置为“admin”,并设置了一个随机的密码。
在下方的”IP访问列表”中指定了可访问的IP地址。虽然原本应该正确设置,但在这里我们暂时指定为”0.0.0.0/0″,以便任何地方都可以访问。
当这些步骤完成后,集群应该部署并可用。
点击“Connect”按钮旁边的集群名称,选择“Connect your application”,将显示连接信息。
由于此次是从Python使用,将“DRIVER”设置为“Python”,“VERSION”设置为“3.12或更高版本”,然后记下显示的字符串。
這樣就完成了MongoDB的設置。
Python的设置
现在我们将进行Python端的设置。
首先,按照下方所示添加 pymongo 到 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界面,您应该能够确认数据已被添加。
到目前为止,数据库的设置已经完成。接下来我们将继续实现用户注册功能。