校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 基于Python實現的購物商城管理系統

基于Python實現的購物商城管理系統

熱門標簽:荊州云電銷機器人供應商 外呼不封號系統 電信營業廳400電話申請 溫州旅游地圖標注 幫人做地圖標注收費算詐騙嗎 悟空智電銷機器人6 遼寧400電話辦理多少錢 蘇州電銷機器人十大排行榜 江蘇房產電銷機器人廠家

完整項目地址:

https://github.com/kongxiangchx/Shopping-mall-management-system

簡介

本項目使用Python語言編寫,實現了顧客端和商家端。

功能

  • 店主功能:注冊、登錄、修改店鋪信息、添加商品、刪除商品、修改商品、查找商品、查看交易記錄。
  • 顧客功能:注冊、登錄、修改收貨信息、查找商品、購買商品、查看交易記錄、取消訂單。

商家端

  • shopMain.py:編寫界面上組件的功能,并通過調用send_data.py向服務器發送相應的請求。
  • shop :存放商家端的界面代碼。
  • ui1 :存放商家端的ui文件,使用qtdesigner設計。
  • send_data.py 將數據封裝成json之后發給服務器。

顧客端

  • customerMain.py:編寫界面上組件的功能,并通過調用send_data.py向服務器發送相應的請求。
  • customer :存放顧客端的界面代碼。
  • ui1 :存放顧客端的ui文件,使用qtdesigner設計。
  • send_data.py 將數據封裝成json之后發給服務器。

服務器端

  • server.py:主要用來處理商家和顧客發來的請求,并調用mysql_op對數據庫進行操作。
  • mysql_op.py:處理商家和顧客對數據庫的操作。

主要代碼

shopMain.py

import sys
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
import shop.register_window
from shop.register_window import *
from shop.login_window import *
from shop.shop_main import *
from shop.add_goods import *
from shop.view_goods import *
from shop.change_goods import *
from shop.update_goods import *
from shop.view_trade import *
from shop.shop_info import *
from send_data import *


class Register(QMainWindow, Ui_register_window):
    def __init__(self, parent=None):
        super(Register, self).__init__(parent)
        self.setupUi(self)
        self.reg_bt.clicked.connect(self.click1)
        self.tologin.clicked.connect(self.click2)

    def click1(self):
        username = self.username.text()
        pass1 = self.pass1.text()
        pass2 = self.pass2.text()
        shop_name = self.shop_name.text()
        phone = self.phone.text()
        addr = self.addr.currentText()
        if username == '' or pass1 == '' or shop_name == '' or phone == '' or addr == '':
            QMessageBox.information(self, "注冊", "店鋪信息不能為空", QMessageBox.Yes)
            return
        if pass1 != pass2:
            QMessageBox.information(self, "注冊", "兩次密碼不同", QMessageBox.Yes)
            return
        data = {'id': 'shop', 'type': 'register', 'user': username,
                'passwd': pass1, 'shop_name': shop_name, 'phone': phone, 'addr': addr}
        s = Send_data()
        recv = s.message(data)
        s.close()
        if recv['result'] == 'success':
            QMessageBox.information(self, "注冊", "注冊成功", QMessageBox.Yes)
        else:
            QMessageBox.information(self, "注冊", "注冊失敗", QMessageBox.Yes)

    def click2(self):
        myWin1.hide()
        myWin2.show()


class Login(QMainWindow, Ui_login_window):
    def __init__(self, parent=None):
        super(Login, self).__init__(parent)
        self.setupUi(self)
        self.login_bt.clicked.connect(self.click1)
        self.toreg.clicked.connect(self.click2)

    def click1(self):
        global user
        username = self.username.text()
        password = self.password.text()
        if username == '' or password == '':
            QMessageBox.information(self, "登錄", "用戶名和密碼不能為空", QMessageBox.Yes)
            return
        data = {'id': 'shop', 'type': 'login',
                'user': username, 'passwd': password}
        s = Send_data()
        recv = s.message(data)
        s.close()
        if recv['result'] == 'success':
            QMessageBox.information(self, "登錄", "登錄成功", QMessageBox.Yes)
            user = username
            myWin2.hide()
            myWin3.show()
        else:
            QMessageBox.information(self, "登錄", "登錄失敗", QMessageBox.Yes)

    def click2(self):
        myWin2.hide()
        myWin1.show()


class Mainwin(QMainWindow, Ui_shop_main):
    def __init__(self, parent=None):
        super(Mainwin, self).__init__(parent)
        self.setupUi(self)
        self.add_goods.clicked.connect(self.click1)
        self.view_goods.clicked.connect(self.click2)
        self.change_goods.clicked.connect(self.click3)
        self.view_trade.clicked.connect(self.click4)
        self.shop_info.clicked.connect(self.click5)

    def click1(self):
        myWin4.show()

    def click2(self):
        myWin5.load()
        myWin5.show()

    def click3(self):
        myWin6.load()
        myWin6.show()

    def click4(self):
        myWin7.show()

    def click5(self):
        myWin8.load()
        myWin8.show()


class Addgoods(QMainWindow, Ui_add_goods):
    global user

    def __init__(self, parent=None):
        super(Addgoods, self).__init__(parent)
        self.setupUi(self)
        self.tomain.clicked.connect(self.click1)
        self.add_bt.clicked.connect(self.click2)

    def click1(self):
        self.hide()

    def click2(self):
        goods_name = self.goods_name.text()
        goods_type = self.goods_type.currentText()
        goods_prices = float(self.goods_prices.text())
        goods_rest = int(self.goods_rest.text())
        data = {'id': 'shop', 'user': user, 'type': 'add_goods', 'goods_name': goods_name,
                'goods_type': goods_type, 'goods_prices': goods_prices, 'goods_rest': goods_rest}
        s = Send_data()
        recv = s.message(data)
        if recv['result'] == 'success':
            QMessageBox.information(self, "添加商品", "添加成功", QMessageBox.Yes)
        else:
            QMessageBox.information(self, "添加商品", "添加失敗", QMessageBox.Yes)
        s.close()


class Viewgoods(QMainWindow, Ui_view_goods):
    global user

    def __init__(self, parent=None):
        super(Viewgoods, self).__init__(parent)
        self.setupUi(self)
        self.tomain.clicked.connect(self.click1)
        self.ser_bt.clicked.connect(self.click2)

    def click1(self):
        self.hide()

    def click2(self):
        goods_name = self.goods_name.text()
        goods_type = self.goods_type.currentText()
        data = {'id': 'shop', 'type': 'view_goods', 'user': user,
                'goods_name': goods_name, 'goods_type': goods_type}
        s = Send_data()
        recv = s.message(data)
        s.close()
        l1 = len(recv['result'])
        self.model = QStandardItemModel(l1, 5)
        self.model.setHorizontalHeaderLabels(['名稱', '類型', '價格', '庫存', '已售'])
        for i in range(l1):
            for j in range(5):
                item = QStandardItem('%s' % (recv['result'][i][j]))
                self.model.setItem(i, j, item)
        self.goods.setModel(self.model)

    def load(self):
        self.model = QStandardItemModel(0, 5)
        self.model.setHorizontalHeaderLabels(['名稱', '類型', '價格', '庫存', '已售'])
        self.goods.setModel(self.model)


class Changegoods(QMainWindow, Ui_change_goods):
    def __init__(self, parent=None):
        super(Changegoods, self).__init__(parent)
        self.setupUi(self)
        self.tomain.clicked.connect(self.click1)
        self.delete_bt.clicked.connect(self.click2)
        self.toupdate.clicked.connect(self.click3)

    def click1(self):
        self.hide()

    def click2(self):
        goods_name = self.goods_name.currentText()
        if goods_name == '':
            return
        data = {'id': 'shop', 'type': 'delete_goods',
                'user': user, 'goods_name': goods_name}
        # print(json.dumps(data))
        s = Send_data()
        recv = s.message(data)
        s.close()
        if recv['result'] == 'success':
            self.load()
            QMessageBox.information(self, "刪除商品", "刪除成功", QMessageBox.Yes)
        else:
            QMessageBox.information(self, "刪除商品", "刪除失敗", QMessageBox.Yes)

    def click3(self):
        goods_name = self.goods_name.currentText()
        # print(goods_name)
        if goods_name != '':
            myWin9.load(goods_name)
            myWin9.show()

    def load(self):
        data = {'id': 'shop', 'type': 'select_goods', 'user': user}
        s = Send_data()
        recv = s.message(data)
        s.close()
        # print(recv['result'])
        l1 = len(recv['result'])
        self.goods_name.clear()
        for i in range(l1):
            self.goods_name.addItem(recv['result'][i][0])


class Updategoods(QMainWindow, Ui_update_goods):
    def __init__(self, parent=None):
        super(Updategoods, self).__init__(parent)
        self.setupUi(self)
        self.tofront.clicked.connect(self.click1)
        self.update_bt.clicked.connect(self.click2)

    def click1(self):
        self.hide()

    def click2(self):
        old_goods_name = self.old_goods_name
        goods_name = self.goods_name.text()
        goods_type = self.goods_type.currentText()
        goods_prices = float(self.goods_prices.text())
        goods_rest = int(self.goods_rest.text())
        data = {'id': 'shop', 'type': 'update_goods', 'user': user, 'old_goods_name': old_goods_name,
                'goods_name': goods_name, 'goods_type': goods_type, 'goods_prices': goods_prices, 'goods_rest': goods_rest}
        s = Send_data()
        recv = s.message(data)
        s.close()
        if recv['result'] == 'success':
            self.hide()
            myWin6.load()
            QMessageBox.information(self, "修改商品", "修改成功", QMessageBox.Yes)
        else:
            QMessageBox.information(self, "修改商品", "修改失敗", QMessageBox.Yes)

    def load(self, goods_name):
        self.old_goods_name = goods_name
        data = {'id': 'shop', 'type': 'select_goodsinfo',
                'user': user, 'goods_name': goods_name}
        # print(json.dumps(data))
        s = Send_data()
        recv = s.message(data)
        s.close()
        # print(recv['result'])
        self.goods_name.setText(recv['result'][0])
        self.goods_type.setCurrentText(recv['result'][1])
        self.goods_prices.setValue(recv['result'][2])
        self.goods_rest.setValue(recv['result'][3])


class Viewtrade(QMainWindow, Ui_view_trade):
    def __init__(self, parent=None):
        super(Viewtrade, self).__init__(parent)
        self.setupUi(self)
        self.tomain.clicked.connect(self.click1)
        self.ser_bt.clicked.connect(self.click2)

    def click1(self):
        self.hide()

    def click2(self):
        goods_name = self.goods_name.text()
        goods_type = self.goods_type.currentText()
        data = {'id': 'shop', 'type': 'view_trade', 'user': user,
                'goods_name': goods_name, 'goods_type': goods_type}
        s = Send_data()
        recv = s.message(data)
        s.close()
        # print(recv['result'])
        l1 = len(recv['result'])
        self.model = QStandardItemModel(l1, 8)
        self.model.setHorizontalHeaderLabels(
            ['商品名稱', '商品類型', '交易數量', '交易金額', '交易時間', '顧客', '聯系方式', '收貨地址'])
        for i in range(l1):
            for j in range(8):
                item = QStandardItem('%s' % (recv['result'][i][j]))
                self.model.setItem(i, j, item)
        self.trade.setModel(self.model)

    def load(self):
        self.model = QStandardItemModel(0, 8)
        self.model.setHorizontalHeaderLabels(
            ['商品名稱', '商品類型', '交易數量', '交易金額', '交易時間', '顧客', '聯系方式', '收貨地址'])
        self.trade.setModel(self.model)


class Shopinfo(QMainWindow, Ui_shop_info):
    def __init__(self, parent=None):
        super(Shopinfo, self).__init__(parent)
        self.setupUi(self)
        self.tomain.clicked.connect(self.click1)
        self.change_bt.clicked.connect(self.click2)

    def click1(self):
        self.hide()

    def click2(self):
        pass1 = self.pass1.text()
        pass2 = self.pass2.text()
        shop_name = self.shop_name.text()
        phone = self.phone.text()
        addr = self.addr.currentText()
        data = {'id': 'shop', 'type': 'update_shop', 'user': user,
                'passwd': pass1, 'shop_name': shop_name, 'phone': phone, 'addr': addr}
        s = Send_data()
        recv = s.message(data)
        s.close()
        if recv['result'] == 'success':
            QMessageBox.information(self, "修改店鋪信息", "修改成功", QMessageBox.Yes)
        else:
            QMessageBox.information(self, "修改店鋪信息", "修改失敗", QMessageBox.Yes)
        self.load()

    def load(self):
        data = {'id': 'shop', 'type': 'shop_info', 'user': user}
        s = Send_data()
        recv = s.message(data)
        s.close()
        self.username.setText(recv['result'][0])
        self.username.setFocusPolicy(QtCore.Qt.NoFocus)
        self.pass1.setText(recv['result'][1])
        self.pass2.setText(recv['result'][1])
        self.shop_name.setText(recv['result'][2])
        self.phone.setText(recv['result'][3])
        self.addr.setCurrentText(recv['result'][4])
        self.shop_time.setText(recv['result'][5])
        self.shop_time.setFocusPolicy(QtCore.Qt.NoFocus)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    user = ""
    myWin1 = Register()
    myWin1.show()
    myWin2 = Login()
    myWin3 = Mainwin()
    myWin4 = Addgoods()
    # myWin4.show()
    myWin5 = Viewgoods()
    # myWin5.show()
    myWin6 = Changegoods()
    # myWin6.show()
    myWin7 = Viewtrade()
    # myWin7.show()
    myWin8 = Shopinfo()
    # myWin8.show()
    myWin9 = Updategoods()
    if app.exec_() == 0:
        sys.exit(0)

代碼較多不便全部放出,請自行下載或克隆倉庫。

以上就是基于Python實現的購物商城管理系統的詳細內容,更多關于python 購物商城管理系統的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • Python函數實現學員管理系統
  • python面向對象版學生信息管理系統
  • Python實現學生管理系統(面向對象版)
  • python學生信息管理系統實現代碼
  • 教你用Python實現簡易版學生信息管理系統(含源碼)
  • 教你用python實現一個無界面的小型圖書管理系統
  • 一篇文章教你用Python實現一個學生管理系統

標簽:宿遷 臺灣 欽州 喀什 三沙 景德鎮 濟南 黃山

巨人網絡通訊聲明:本文標題《基于Python實現的購物商城管理系統》,本文關鍵詞  基于,Python,實現,的,購物商城,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《基于Python實現的購物商城管理系統》相關的同類信息!
  • 本頁收集關于基于Python實現的購物商城管理系統的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    www.在线欧美| 激情欧美一区二区| 欧美日韩黄色一区二区| 亚洲成a人v欧美综合天堂下载 | 国产精品一区二区不卡| 国产欧美一区视频| 99久久精品免费精品国产| 一区二区成人在线视频| 欧美一区二区免费视频| 国产精品69毛片高清亚洲| 自拍偷拍国产亚洲| 欧美精品色一区二区三区| 欧美a级一区二区| 久久久久国产精品麻豆ai换脸| 国产91精品一区二区麻豆亚洲| 亚洲色图欧美激情| 91精品国产一区二区三区蜜臀 | 在线播放亚洲一区| 国产乱人伦偷精品视频不卡| 亚洲色图丝袜美腿| 日韩欧美一级二级三级久久久| 国产一区二区三区四区五区美女| **欧美大码日韩| 欧美精品一卡两卡| 成人久久视频在线观看| 午夜精品免费在线| 中文字幕精品三区| 3d成人h动漫网站入口| 丁香激情综合国产| 日韩和欧美一区二区三区| 国产亚洲成av人在线观看导航| 欧美性色欧美a在线播放| 国产精品原创巨作av| 一区二区成人在线| 欧美国产成人在线| 日韩欧美国产1| 色8久久人人97超碰香蕉987| 国产精品综合网| 亚洲高清在线精品| 亚洲色图在线看| 久久久久国产精品免费免费搜索| 欧美日韩成人在线一区| av影院午夜一区| 国产一区不卡精品| 日韩电影免费在线看| 亚洲丝袜另类动漫二区| 久久久三级国产网站| 欧美美女网站色| 91搞黄在线观看| 成人免费高清在线| 韩国一区二区三区| 日韩不卡一区二区| 亚洲一二三四区| 亚洲丝袜美腿综合| 久久色.com| 欧美一级专区免费大片| 欧美日韩免费视频| 欧美亚洲高清一区二区三区不卡| av激情综合网| www.欧美亚洲| 国产成人综合自拍| 国产盗摄女厕一区二区三区| 精品亚洲国产成人av制服丝袜| 日本女人一区二区三区| 日精品一区二区三区| 亚洲国产一区二区a毛片| 亚洲视频一区二区在线观看| 国产精品色在线观看| 欧美韩国日本综合| 国产精品亲子伦对白| 中文字幕的久久| 国产精品久久久久久户外露出| 久久精品视频一区二区| 久久精品夜色噜噜亚洲a∨| 日韩欧美中文字幕公布| 日韩精品一区二区三区视频| 精品美女在线观看| 国产性色一区二区| 国产精品少妇自拍| 亚洲激情av在线| 夜夜嗨av一区二区三区网页 | 亚洲欧美怡红院| 中文字幕亚洲一区二区va在线| |精品福利一区二区三区| 国产精品伦理在线| 亚洲视频免费在线| 亚洲成人综合网站| 麻豆成人久久精品二区三区红 | 成人动漫av在线| 97久久久精品综合88久久| 色综合久久精品| 欧美日韩国产一二三| 91精品国产一区二区三区香蕉| 精品免费日韩av| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 亚洲欧美日韩国产综合在线| 国产精品国产三级国产普通话99 | 国产成人av影院| 91麻豆免费看片| 欧美一区二区性放荡片| 国产视频在线观看一区二区三区| 日韩一区在线播放| 日韩中文字幕一区二区三区| 激情综合亚洲精品| 色哟哟亚洲精品| 精品久久一区二区| 中文字幕中文字幕一区| 日日欢夜夜爽一区| 成人av电影观看| 欧美精品在线一区二区三区| 久久精品一区二区三区不卡牛牛 | 欧美日韩精品三区| 久久久久久亚洲综合影院红桃 | 天天操天天干天天综合网| 久久99蜜桃精品| 一本一本久久a久久精品综合麻豆| 欧美蜜桃一区二区三区| 日本一区二区三区久久久久久久久不 | 综合亚洲深深色噜噜狠狠网站| 亚洲国产精品自拍| 国产成人免费视频网站高清观看视频 | 成人高清免费在线播放| 91精品国产综合久久精品麻豆| 国产亚洲欧洲一区高清在线观看| 亚洲在线视频免费观看| 国产福利视频一区二区三区| 在线播放/欧美激情| 1000部国产精品成人观看| 激情久久五月天| 欧美日韩一区二区三区四区五区| 久久精品视频一区二区| 日韩av一区二区三区| 色94色欧美sute亚洲线路二 | 一区二区欧美精品| 国产成a人亚洲精品| 欧美电影免费观看高清完整版| 一区二区三区欧美在线观看| 国产成人综合自拍| 日韩精品中文字幕一区二区三区 | 国产电影一区在线| 精品久久五月天| 日产国产高清一区二区三区| 在线观看三级视频欧美| 中文字幕一区二区三区在线不卡| 精久久久久久久久久久| 欧美一区二区免费观在线| 午夜久久电影网| 欧美日韩黄色一区二区| 尤物av一区二区| 99久久精品免费| 欧美韩日一区二区三区| 国产九色精品成人porny| 精品国产伦一区二区三区免费| 三级影片在线观看欧美日韩一区二区| 色伊人久久综合中文字幕| 成人免费在线视频| 成人h动漫精品一区二区| 欧美极品美女视频| 国产传媒久久文化传媒| 国产婷婷色一区二区三区在线| 国产一区二区按摩在线观看| 久久久一区二区| 国产一区 二区| 26uuu亚洲综合色| 国产在线国偷精品产拍免费yy| 日韩精品自拍偷拍| 国内精品写真在线观看| 久久久久久久国产精品影院| 国产**成人网毛片九色| ㊣最新国产の精品bt伙计久久| 成人av电影免费在线播放| 亚洲婷婷综合色高清在线| 91色九色蝌蚪| 亚洲第四色夜色| 欧美大胆一级视频| 国产精品一区二区黑丝| 中文字幕+乱码+中文字幕一区| gogo大胆日本视频一区| 一区二区三区精品在线观看| 欧美色视频在线| 精品一区二区三区久久| 国产日产欧美一区二区视频| a4yy欧美一区二区三区| 亚洲乱码中文字幕| 欧美日韩国产小视频| 麻豆国产精品777777在线| 久久久亚洲国产美女国产盗摄 | 国产在线精品一区二区三区不卡| 国产午夜久久久久| 色偷偷成人一区二区三区91| 日韩avvvv在线播放| 国产人成一区二区三区影院| 99视频有精品| 亚洲v日本v欧美v久久精品| 26uuu欧美| 在线区一区二视频| 韩国av一区二区三区四区| 亚洲视频 欧洲视频| 91精品国产综合久久蜜臀| 成人免费黄色在线|