婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > 基于Python實(shí)現(xiàn)的購(gòu)物商城管理系統(tǒng)

基于Python實(shí)現(xiàn)的購(gòu)物商城管理系統(tǒng)

熱門標(biāo)簽:荊州云電銷機(jī)器人供應(yīng)商 外呼不封號(hào)系統(tǒng) 電信營(yíng)業(yè)廳400電話申請(qǐng) 溫州旅游地圖標(biāo)注 幫人做地圖標(biāo)注收費(fèi)算詐騙嗎 悟空智電銷機(jī)器人6 遼寧400電話辦理多少錢 蘇州電銷機(jī)器人十大排行榜 江蘇房產(chǎn)電銷機(jī)器人廠家

完整項(xiàng)目地址:

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

簡(jiǎn)介

本項(xiàng)目使用Python語言編寫,實(shí)現(xiàn)了顧客端和商家端。

功能

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

商家端

  • shopMain.py:編寫界面上組件的功能,并通過調(diào)用send_data.py向服務(wù)器發(fā)送相應(yīng)的請(qǐng)求。
  • shop :存放商家端的界面代碼。
  • ui1 :存放商家端的ui文件,使用qtdesigner設(shè)計(jì)。
  • send_data.py 將數(shù)據(jù)封裝成json之后發(fā)給服務(wù)器。

顧客端

  • customerMain.py:編寫界面上組件的功能,并通過調(diào)用send_data.py向服務(wù)器發(fā)送相應(yīng)的請(qǐng)求。
  • customer :存放顧客端的界面代碼。
  • ui1 :存放顧客端的ui文件,使用qtdesigner設(shè)計(jì)。
  • send_data.py 將數(shù)據(jù)封裝成json之后發(fā)給服務(wù)器。

服務(wù)器端

  • server.py:主要用來處理商家和顧客發(fā)來的請(qǐng)求,并調(diào)用mysql_op對(duì)數(shù)據(jù)庫進(jìn)行操作。
  • mysql_op.py:處理商家和顧客對(duì)數(shù)據(jù)庫的操作。

主要代碼

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, "注冊(cè)", "店鋪信息不能為空", QMessageBox.Yes)
            return
        if pass1 != pass2:
            QMessageBox.information(self, "注冊(cè)", "兩次密碼不同", 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, "注冊(cè)", "注冊(cè)成功", QMessageBox.Yes)
        else:
            QMessageBox.information(self, "注冊(cè)", "注冊(cè)失敗", 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(['名稱', '類型', '價(jià)格', '庫存', '已售'])
        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(['名稱', '類型', '價(jià)格', '庫存', '已售'])
        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(
            ['商品名稱', '商品類型', '交易數(shù)量', '交易金額', '交易時(shí)間', '顧客', '聯(lián)系方式', '收貨地址'])
        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(
            ['商品名稱', '商品類型', '交易數(shù)量', '交易金額', '交易時(shí)間', '顧客', '聯(lián)系方式', '收貨地址'])
        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)

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

以上就是基于Python實(shí)現(xiàn)的購(gòu)物商城管理系統(tǒng)的詳細(xì)內(nèi)容,更多關(guān)于python 購(gòu)物商城管理系統(tǒng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • Python函數(shù)實(shí)現(xiàn)學(xué)員管理系統(tǒng)
  • python面向?qū)ο蟀鎸W(xué)生信息管理系統(tǒng)
  • Python實(shí)現(xiàn)學(xué)生管理系統(tǒng)(面向?qū)ο蟀?
  • python學(xué)生信息管理系統(tǒng)實(shí)現(xiàn)代碼
  • 教你用Python實(shí)現(xiàn)簡(jiǎn)易版學(xué)生信息管理系統(tǒng)(含源碼)
  • 教你用python實(shí)現(xiàn)一個(gè)無界面的小型圖書管理系統(tǒng)
  • 一篇文章教你用Python實(shí)現(xiàn)一個(gè)學(xué)生管理系統(tǒng)

標(biāo)簽:宿遷 臺(tái)灣 欽州 喀什 三沙 景德鎮(zhèn) 濟(jì)南 黃山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《基于Python實(shí)現(xiàn)的購(gòu)物商城管理系統(tǒng)》,本文關(guān)鍵詞  基于,Python,實(shí)現(xiàn),的,購(gòu)物商城,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《基于Python實(shí)現(xiàn)的購(gòu)物商城管理系統(tǒng)》相關(guān)的同類信息!
  • 本頁收集關(guān)于基于Python實(shí)現(xiàn)的購(gòu)物商城管理系統(tǒng)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产精品久久久久久福利一牛影视| 久久国产精品第一页| 国产成人精品www牛牛影视| 欧美精品一区二区三区在线| 麻豆一区二区99久久久久| 国产欧美精品一区| 色综合中文综合网| 青草av.久久免费一区| 欧美成人vps| 91视频一区二区三区| 亚洲国产精品精华液网站| 日韩视频免费观看高清完整版在线观看| 免费xxxx性欧美18vr| 免费黄网站欧美| 国产九色精品成人porny| 一区二区三区欧美在线观看| 日韩一区二区三区视频在线观看| 日韩一区二区三区在线视频| 精品国产露脸精彩对白| 欧美精品一区二区三区高清aⅴ| 2023国产精品视频| 欧美人与z0zoxxxx视频| 国产精品888| 99国产精品久久久| 精品午夜久久福利影院| 亚洲成人免费电影| 国产精品网友自拍| 久久精品亚洲国产奇米99| 欧美日本在线视频| 久久综合久久综合亚洲| 亚洲日本一区二区| 国产精品乱码一区二三区小蝌蚪| 亚洲综合激情另类小说区| 国产精品久久影院| 无码av免费一区二区三区试看 | 日本午夜一本久久久综合| 亚洲欧洲成人自拍| 欧美极品aⅴ影院| 2014亚洲片线观看视频免费| 中文字幕一区在线观看视频| 美女一区二区在线观看| 91年精品国产| 久久久久久亚洲综合| 精品美女一区二区| 亚洲电影你懂得| 成人免费av在线| 国产99久久久国产精品潘金| 成人性生交大片免费看视频在线 | 色综合久久久久综合99| 国产69精品久久99不卡| 欧美一级二级三级蜜桃| 亚洲精品乱码久久久久久久久| 综合在线观看色| 国产麻豆9l精品三级站| 国产成人免费视频网站| 欧美一区二区视频网站| 日韩三级中文字幕| 亚洲国产成人高清精品| 色综合天天综合色综合av | 国产日韩欧美a| 奇米影视7777精品一区二区| 色视频欧美一区二区三区| 国产精品污污网站在线观看 | 色先锋资源久久综合| 欧美国产一区二区在线观看| 老司机精品视频在线| 欧美一二区视频| 青青草视频一区| 777久久久精品| 久久精品这里都是精品| 久久国产精品一区二区| 精品久久五月天| 国产一区在线观看视频| 久久综合一区二区| 成人丝袜视频网| 最新国产精品久久精品| 不卡的av在线播放| 欧美精品一级二级三级| 国产亚洲成aⅴ人片在线观看| 热久久一区二区| 欧美大片在线观看一区二区| ●精品国产综合乱码久久久久| 成人免费观看男女羞羞视频| 国产精品天美传媒沈樵| 色综合久久精品| 亚洲午夜三级在线| 3d动漫精品啪啪一区二区竹菊| 免费三级欧美电影| 精品99999| 99久久精品一区| 亚洲曰韩产成在线| 欧美mv日韩mv| 9久草视频在线视频精品| 亚洲精品在线观| aaa欧美大片| 丝袜美腿亚洲综合| 欧洲精品在线观看| 中文字幕免费不卡在线| jvid福利写真一区二区三区| 亚洲精品欧美综合四区| 日韩精品自拍偷拍| 色就色 综合激情| 中日韩免费视频中文字幕| 一本色道亚洲精品aⅴ| 视频在线在亚洲| 国产精品电影院| 欧美片网站yy| 成人免费高清在线观看| 三级欧美在线一区| 国产精品国产三级国产| 日韩一卡二卡三卡四卡| 色综合色狠狠天天综合色| 日本不卡不码高清免费观看 | 91小视频免费看| 奇米888四色在线精品| 成人免费在线播放视频| 欧美一区二区三区不卡| 91久久精品一区二区| 国产精品资源网站| 性做久久久久久免费观看| 国产日韩精品一区二区浪潮av | 久久精品国产亚洲aⅴ| 亚洲精品福利视频网站| www国产亚洲精品久久麻豆| 欧美色图片你懂的| 亚欧色一区w666天堂| 国产精品久久久久影院色老大| 日韩免费看网站| 日韩一区二区在线免费观看| 欧美中文字幕亚洲一区二区va在线| 国产激情一区二区三区桃花岛亚洲 | 欧美乱妇15p| 色婷婷亚洲精品| 成人午夜激情在线| 国产成人av电影免费在线观看| 日本视频免费一区| 亚洲图片有声小说| 亚洲一级二级三级在线免费观看| 国产精品入口麻豆九色| 国产性天天综合网| 久久久激情视频| 久久久久久久久免费| 精品欧美久久久| 日韩手机在线导航| 精品理论电影在线观看| 精品少妇一区二区三区在线视频| 日韩精品一区二区三区在线| 欧美精品 日韩| 91麻豆精品国产91久久久使用方法| 欧美乱妇15p| 日韩精品一区二区三区中文精品 | 韩国女主播一区| 亚洲欧洲在线观看av| 国产婷婷精品av在线| 国产亚洲1区2区3区| 中文字幕亚洲在| 亚洲视频一区二区在线| 日韩理论电影院| 亚洲成人精品一区二区| 人人精品人人爱| 国产一区二区三区免费观看| 国产成人av一区二区三区在线| 成人免费黄色大片| 欧美系列一区二区| 国产精品亚洲第一区在线暖暖韩国| 岛国一区二区在线观看| 91玉足脚交白嫩脚丫在线播放| 欧美亚洲国产bt| 欧美大片在线观看一区| 中文字幕第一区二区| 一区二区三区欧美日韩| 日韩成人免费电影| 国产成人h网站| 在线观看日韩一区| 欧美成人aa大片| 亚洲色图一区二区三区| 亚洲成人免费影院| 国产a区久久久| 欧美午夜在线一二页| 精品欧美久久久| 一区二区三区欧美日韩| 极品少妇xxxx精品少妇| 色成人在线视频| 久久亚洲一区二区三区明星换脸 | 一区二区三区四区乱视频| 日韩电影在线观看电影| 成人精品电影在线观看| 欧美丝袜丝交足nylons| 久久精品免费在线观看| 亚洲精品午夜久久久| 国产一区二区在线观看免费 | 成人国产精品免费观看| 67194成人在线观看| 中文字幕一区二| 国产乱码一区二区三区| 欧美电影影音先锋| 亚洲激情在线激情| 成人夜色视频网站在线观看| 精品国产区一区| 免费人成黄页网站在线一区二区|