【fastapi+mongodb】使用motor操作mongodb

2024-05-27 01:04

本文主要是介绍【fastapi+mongodb】使用motor操作mongodb,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上一篇文章,我们在电脑上安装了mongodb数据库。这篇文章,我们在fastapi后端使用motor操作mongodb

如果你还没看过上一篇文章,链接在这里:【MongoDB】安装与使用

安装 motor

motor 是一个用于操作 mongodb 数据库的 python 库,它封装了 pymongo 库,让其使用起来更加方便。执行下面的命令安装 motor:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple motor

我们先使用命令行访问 mongodb 数据库,在其中新建数据库和集合(也就是 MySQL 的表):

use sunrain //新建 sunrain 数据库
db.createCollection("users") //新建 user 集合

规划项目结构

虽然我们可以把所有的内容都写在 main.py 文件里,但这显然会导致后续维护变得困难。因此我们打算新建一个 python 文件,和 main 文件在一个文件夹下,取名为 dao.py

import motor.motor_asyncio
import asyncio# 连接mongodb
client = motor.motor_asyncio.AsyncIOMotorClient('localhost', 27017)
# 访问 sunrain 数据库
db_sunrain = client['sunrain']
# 访问 users 集合(表)
collection_users = db_sunrain['users']

所谓增删改查,先从最简单的增开始:

async def insert_user():document_user = {'name': 'bluebonnet27', 'age': 24}result_insert_user = await collection_users.insert_one(document_user)print('insert_user result: ')print(result_insert_user.inserted_id)

注意此处方法需要使用异步,insert_one只能插入一条数据。

写完代码后,可以利用 asyncio 库测试我们的方法:

if __name__ == "__main__":print("TEST: DAO")loop = asyncio.get_event_loop()loop.run_until_complete(insert_user())

顺利的话,控制台执行这个文件,有如下输出:

D:\Codes\CPP\VSCodeProjects\2024\March\vueProject\SunrainServer\dao.py:17: DeprecationWarning: There is no current event looploop = asyncio.get_event_loop()
insert_user result:
6653325dfba58f88883ecd31

VS Code 插件

可以在 VS Code 里安装这个插件,避免非得用命令行查看数据库,也比官方性能低下的 mongo compass 好用:
MongoDB for VS Code
第一次运行需要输入连接字符串,直接复制命令行连接显示的那一串就行:
连接字符串
就可以看到我们存入的数据:
数据

这篇关于【fastapi+mongodb】使用motor操作mongodb的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1006092

相关文章

使用Python实现矢量路径的压缩、解压与可视化

《使用Python实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1

Pandas透视表(Pivot Table)的具体使用

《Pandas透视表(PivotTable)的具体使用》透视表用于在数据分析和处理过程中进行数据重塑和汇总,本文就来介绍一下Pandas透视表(PivotTable)的具体使用,感兴趣的可以了解一下... 目录前言什么是透视表?使用步骤1. 引入必要的库2. 读取数据3. 创建透视表4. 查看透视表总结前言

Python 交互式可视化的利器Bokeh的使用

《Python交互式可视化的利器Bokeh的使用》Bokeh是一个专注于Web端交互式数据可视化的Python库,本文主要介绍了Python交互式可视化的利器Bokeh的使用,具有一定的参考价值,感... 目录1. Bokeh 简介1.1 为什么选择 Bokeh1.2 安装与环境配置2. Bokeh 基础2

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Pandas使用AdaBoost进行分类的实现

《Pandas使用AdaBoost进行分类的实现》Pandas和AdaBoost分类算法,可以高效地进行数据预处理和分类任务,本文主要介绍了Pandas使用AdaBoost进行分类的实现,具有一定的参... 目录什么是 AdaBoost?使用 AdaBoost 的步骤安装必要的库步骤一:数据准备步骤二:模型

使用Pandas进行均值填充的实现

《使用Pandas进行均值填充的实现》缺失数据(NaN值)是一个常见的问题,我们可以通过多种方法来处理缺失数据,其中一种常用的方法是均值填充,本文主要介绍了使用Pandas进行均值填充的实现,感兴趣的... 目录什么是均值填充?为什么选择均值填充?均值填充的步骤实际代码示例总结在数据分析和处理过程中,缺失数

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图

Python ZIP文件操作技巧详解

《PythonZIP文件操作技巧详解》在数据处理和系统开发中,ZIP文件操作是开发者必须掌握的核心技能,Python标准库提供的zipfile模块以简洁的API和跨平台特性,成为处理ZIP文件的首选... 目录一、ZIP文件操作基础三板斧1.1 创建压缩包1.2 解压操作1.3 文件遍历与信息获取二、进阶技