news 2026/6/22 8:18:42

【MongoDB实战】8.2 简易商品管理系统-核心功能实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【MongoDB实战】8.2 简易商品管理系统-核心功能实现

文章目录

  • 简易商品管理系统(MongoDB + Flask 实现)
    • 一、环境准备
      • 1. 安装依赖
      • 2. 配置文件(.env)
    • 二、核心代码实现
      • 整体结构
    • 三、核心功能说明
      • 1. 数据层(ProductDB)
      • 2. 业务层(ProductService)
      • 3. 接口层(Flask 路由)
    • 四、测试示例
      • 1. 启动服务
      • 2. 接口测试(curl 示例)
        • (1)新增商品
        • (2)查询单个商品
        • (3)更新库存
        • (4)分类统计
        • (5)删除商品
    • 五、扩展与优化

简易商品管理系统(MongoDB + Flask 实现)

本文将完整实现基于MongoDB + Python Flask的简易商品管理系统,聚焦 MongoDB 核心操作(CRUD + 聚合),同时封装业务层逻辑(库存校验、分类统计),并提供 HTTP 接口层

一、环境准备

1. 安装依赖

pipinstallpymongo flask python-dotenv

2. 配置文件(.env)

存放 MongoDB 连接信息,避免硬编码:

# MongoDB 连接配置MONGO_URI=mongodb://localhost:27017/MONGO_DB_NAME=product_managementMONGO_COLLECTION_NAME=products

二、核心代码实现

整体结构

# main.pyimportosfromdotenvimportload_dotenvfromflaskimportFlask,request,jsonifyfrompymongoimportMongoClientfrombson.objectidimportObjectIdfrombson.errorsimportInvalidId# 加载环境变量load_dotenv()# 初始化 Flask 应用app=Flask(__name__)# ====================== 数据层:MongoDB 操作封装 ======================classProductDB:def__init__(self):"""初始化 MongoDB 连接"""self.client=MongoClient(os.getenv("MONGO_URI"))self.db=self.client[os.getenv("MONGO_DB_NAME")]self.collection=self.db[os.getenv("MONGO_COLLECTION_NAME")]# 1. 创建商品(C)defcreate_product(self,product_data):""" 新增商品 :param product_data: 商品字典(name, category, price, stock, description) :return: 新增商品的 ID """result=self.collection.insert_one(product_data)returnstr(result.inserted_id)# 2. 查询商品(R)defget_product_by_id(self,product_id):"""根据 ID 查询单个商品"""try:product=self.collection.find_one({"_id":ObjectId(product_id)})ifproduct:# 转换 ObjectId 为字符串,方便 JSON 序列化product["_id"]=str(product["_id"])returnproductexceptInvalidId:returnNonedefget_products_by_condition(self,condition=None):"""根据条件查询多个商品(默认查询全部)"""condition=conditionor{}products=[]forproductinself.collection.find(condition):product["_id"]=str(product["_id"])products.append(product)returnproducts# 3. 更新商品(U)defupdate_product(self,product_id,update_data):""" 更新商品信息 :param product_id: 商品 ID :param update_data: 要更新的字段字典 :return: 是否更新成功(True/False) """<
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/21 12:54:25

Apache Doris AI 能力揭秘(四):HSAP 一体化混合搜索与分析架构全解

AI 时代正在重塑数据库的角色。过去&#xff0c;数据库主要为人类分析者提供报表与查询能力&#xff1b;而现在&#xff0c;越来越多的查询来自智能代理&#xff08;Agent&#xff09;&#xff0c;它们会自动检索知识、过滤数据、组合多种信号&#xff0c;并将数据库作为 “实时…

作者头像 李华
网站建设 2026/6/18 0:18:32

jQuery EasyUI 树形菜单 - 树形网格动态加载

jQuery EasyUI 树形网格&#xff08;TreeGrid&#xff09; - 动态加载&#xff08;按需加载子节点&#xff09; jQuery EasyUI TreeGrid 支持两种常见的“动态加载”方式&#xff1a; 服务器端按需加载&#xff08;On-Demand Loading / Remote Lazy Loading&#xff09; 最常见…

作者头像 李华
网站建设 2026/6/21 16:57:26

测试网部署全流程:自研 dApp 上线 Goerli 测试链并验证功能

Goerli&#xff08; Grli &#xff09;是以太坊官方推荐的 PoA 测试网&#xff0c;兼容以太坊主网生态&#xff0c;是 dApp 上线主网前验证功能、测试交互的核心环境。本文以「Hardhat 框架 Solidity 智能合约 React 前端」为例&#xff0c;完整讲解 dApp 部署到 Goerli 测试…

作者头像 李华
网站建设 2026/6/20 9:09:37

纯电动汽车仿真:从模型搭建到动力性与经济性分析

纯电动汽车仿真、纯电动公交、纯电动客车、纯电动汽车动力性仿真、经济性仿真。 模型包括电机、电池、车辆模型。 有两种模型2选1&#xff1a; 1 完全用matlab simulink搭建的模型。 2用simscape搭建的车辆模型。 项目开发使用的模型&#xff0c;精确度高&#xff0c;不是随便乱…

作者头像 李华
网站建设 2026/6/22 0:09:26

新能源控制器中多峰值MPPT寻优仿真模型探索

新能源控制器&#xff0c;多峰值mppt寻优仿真模型&#xff0c;传统扰动电导等寻优无法用在局部遮阴下&#xff0c;而粒子群pso算法克服了这个问题&#xff0c;可用于自行研究。 压缩包附带使用说明及解析文档&#xff0c;包括传统扰动与粒子群算法模型。在新能源领域&#xff0…

作者头像 李华