python实现超市管理系统(后台管理)

Python实现超市管理系统(后台管理)攻略

介绍

本文将讲解如何使用Python语言实现一个基于命令行的超市管理系统的后台管理部分。该系统允许管理员登录并管理商品信息,包括商品信息的添加、修改、删除、查询等基本操作。

技术栈

  • Python 3.x
  • SQLite3

实现步骤

1. 创建数据库

在本项目中,我们将使用SQLite3作为后台数据库。可以使用Python自带的sqlite3模块进行数据库的操作。

在程序中创建商品表的SQL语句:

CREATE TABLE IF NOT EXISTS products (
    product_id INTEGER PRIMARY KEY AUTOINCREMENT,
    product_name TEXT NOT NULL,
    product_price REAL NOT NULL,
    product_stock INTEGER NOT NULL
);

2. 编写数据操作类

通过Python的面向对象特性,我们可以创建一个Product类,用于描述商品信息,同时提供对商品信息进行CRUD操作的方法。

import sqlite3

class Product:

    def __init__(self, name, price, stock):
        self.name = name
        self.price = price
        self.stock = stock

    @classmethod
    def get_all(cls):
        conn = sqlite3.connect('database.db')
        cursor = conn.cursor()
        cursor.execute(
            '''
            SELECT product_id, product_name, product_price, product_stock
            FROM products;
            '''
        )
        data = cursor.fetchall()
        return [cls(*each) for each in data]

    @classmethod
    def add(cls, name, price, stock):
        conn = sqlite3.connect('database.db')
        cursor = conn.cursor()
        cursor.execute(
            '''
            INSERT INTO products (product_name, product_price, product_stock)
            VALUES (?, ?, ?);
            ''',
            (name, price, stock)
        )
        conn.commit()
        return cursor.lastrowid

    @classmethod
    def update(cls, product_id, name, price, stock):
        conn = sqlite3.connect('database.db')
        cursor = conn.cursor()
        cursor.execute(
            '''
            UPDATE products
            SET product_name=?, product_price=?, product_stock=?
            WHERE product_id=?;
            ''',
            (name, price, stock, product_id)
        )
        conn.commit()

    @classmethod
    def delete(cls, product_id):
        conn = sqlite3.connect('database.db')
        cursor = conn.cursor()
        cursor.execute(
            '''
            DELETE FROM products
            WHERE product_id=?;
            ''',
            (product_id,)
        )
        conn.commit()

3. 实现管理界面

管理界面可以使用命令行实现。管理员可以根据提示,选择不同的操作,来执行相应的操作。

def main():
    while True:
        print('1 - 查询商品信息')
        print('2 - 添加商品信息')
        print('3 - 修改商品信息')
        print('4 - 删除商品信息')
        print('5 - 退出程序')
        choice = input('请选择需要执行的操作:')
        if choice == '1':
            list_products()
        elif choice == '2':
            add_product()
        elif choice == '3':
            update_product()
        elif choice == '4':
            delete_product()
        elif choice == '5':
            print('程序已退出。')
            break
        else:
            print('输入错误,请重新输入。')

在每个操作中,我们可以调用Product类提供的方法,对商品信息进行增删改查操作。例如,在添加商品信息操作中,可以通过下面的代码添加新商品:

def add_product():
    name = input('请输入商品名称:')
    price = float(input('请输入商品价格:'))
    stock = int(input('请输入商品库存:'))

    product_id = Product.add(name, price, stock)
    print(f'商品已添加。商品ID:{product_id}')

示例说明

下面提供两个示例,分别演示了如何添加商品信息及修改商品信息。

示例1:添加商品信息

请选择需要执行的操作:2
请输入商品名称:可乐
请输入商品价格:3.5
请输入商品库存:200
商品已添加。商品ID:1

示例2:修改商品信息

请选择需要执行的操作:3
请输入需要修改的商品ID:1
请输入商品名称:雪碧
请输入商品价格:3.0
请输入商品库存:150
商品已修改。

总结

通过本文的介绍,我们学习了如何使用Python语言实现一个基于命令行的超市管理系统的后台管理部分。在实现过程中,我们了解了如何使用SQLite3进行数据存储和操作,以及如何使用面向对象的方式封装数据操作方法。如果想要完整实现一个超市管理系统,还需要实现前端展示和用户界面,以及其他重要功能,例如登录验证、订单管理、用户管理等。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python实现超市管理系统(后台管理) - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • CentOS 7下Python 2.7升级至Python3.6.1的实战教程

    CentOS 7下Python 2.7升级至Python 3.6.1的实战教程 简介 本文将介绍在CentOS 7下如何将系统自带的Python 2.7版本升级到Python 3.6.1版本的具体步骤,同时也会对升级过程中可能会遇到的一些问题进行解决和说明。 步骤 1. 安装必备依赖 升级Python 3.6.1需要一些必要的依赖,这里我们需要先安装这些必备…

    python 2023年5月30日
    00
  • python的random模块及加权随机算法的python实现方法

    python的random模块及加权随机算法的python实现方法 random模块简介 Python的random模块提供了生成随机数的功能,可以用来生成伪随机数。主要用于生成测试数据,大型模拟以及保护算法的机密性。 在Python中,可以通过导入random模块来使用这些功能。 以下是常用的方法: random.randint(a,b):生成[a,b]之…

    python 2023年5月14日
    00
  • python程序 线程队列queue使用方法解析

    Python程序线程队列Queue使用方法解析 在Python程序中,线程队列(Queue)常常用于协调不同线程间的数据交互,以及其他类型的同步操作。Python中内置了标准库Queue,提供了多种数据交互方式,使得程序开发更加灵活方便。本文将详细讲解Python程序中如何使用线程队列。 使用队列的基本思路 程序中使用队列进行线程间通信,主要思路如下: 在主…

    python 2023年5月13日
    00
  • Python argparse命令参数与config配置参数示例深入详解

    Python的argparse库是用于解析命令行参数的标准库,同时配合configparser模块使用可以实现命令行参数与配置文件参数共存。 命令行参数 使用argparse库解析命令行参数,主要包括以下步骤: 定义脚本的参数列表; 实例化ArgumentParser对象; 添加参数的名称、选项、值等信息; 调用parse_args()方法解析参数列表。 下…

    python 2023年6月3日
    00
  • python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)

    Python微信聊天机器人改进版攻略 项目概述 本项目是使用Python实现的微信聊天机器人,可以实现根据定时或触发条件抓取天气预报、励志语录等并向好友推送的功能。 技术方案 开发环境 Python 3.x itchat:一个开源的微信个人号接口; BeautifulSoup:一个可以从HTML或XML文件中提取数据的Python库; requests:一个…

    python 2023年5月23日
    00
  • 用python批量解压带密码的压缩包

    首先,在Python中我们可以使用zipfile模块来处理压缩文件。zipfile模块提供了ZipFile和ZipInfo两个核心类,可以用来解析和处理zip压缩文件。 接下来是具体步骤: 导入库 import zipfile 创建ZipFile对象,打开压缩包 zip_file = zipfile.ZipFile(‘file.zip’) 打开压缩包中的某个…

    python 2023年6月3日
    00
  • Python 字符串换行的多种方式

    Python 字符串换行的多种方式 在 Python 中,如果我们需要将一长串字符串拆分成多行显示,就需要使用到字符串换行。下面将介绍 Python 中实现字符串换行的几种方式。 ## 使用反斜杠 \ 在 Python 中,可以使用反斜杠将一行的代码拆分成多行。比如: msg = "这是一段非常长的字符串,但是我想拆分成多行显示,\ 这样可以让代码…

    python 2023年6月3日
    00
  • Python正则获取、过滤或者替换HTML标签的方法

    以下是“Python正则获取、过滤或者替换HTML标签的方法”的完整攻略: 一、问题描述 在Python中,我们经常需要处理HTML文本,包括获取、过滤或者替换HTML标签。本文将详细讲解Python正则获取、过滤或者替换HTML标签的方法,并提供两个示例说明。 二、解决方案 2.1 获取HTML标签 在Python中,我们可以使用正则表达式获取HTML标签…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部