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

主頁(yè) > 知識(shí)庫(kù) > 基于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語(yǔ)言編寫,實(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ù)庫(kù)進(jìn)行操作。
  • mysql_op.py:處理商家和顧客對(duì)數(shù)據(jù)庫(kù)的操作。

主要代碼

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à)格', '庫(kù)存', '已售'])
        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à)格', '庫(kù)存', '已售'])
        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)自行下載或克隆倉(cāng)庫(kù)。

以上就是基于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)的同類信息!
  • 本頁(yè)收集關(guān)于基于Python實(shí)現(xiàn)的購(gòu)物商城管理系統(tǒng)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日本中文字幕一区二区有限公司| 亚洲影视资源网| 老汉av免费一区二区三区| 欧美精品成人一区二区三区四区| 中文字幕在线一区二区三区| 中文字幕精品一区| 成人国产视频在线观看| 一区二区三区国产豹纹内裤在线| 91精品国产黑色紧身裤美女| av午夜精品一区二区三区| 亚洲主播在线播放| 亚洲国产高清在线| 精品第一国产综合精品aⅴ| 欧美色国产精品| 99在线精品一区二区三区| 美女www一区二区| 无吗不卡中文字幕| 精品国产伦一区二区三区观看方式 | 国内精品视频666| 91免费视频网址| 国产精品不卡在线| 97久久精品人人爽人人爽蜜臀| 久久精品亚洲国产奇米99| 国产精品66部| 欧美国产精品一区二区三区| 成人av网站免费观看| 136国产福利精品导航| 99久久精品国产网站| 一区二区三区在线观看动漫| 欧美日韩视频在线第一区| 日韩一区精品视频| 亚洲成人自拍偷拍| 精品对白一区国产伦| av在线一区二区| 亚洲综合区在线| 欧美一区二区不卡视频| 成人一级黄色片| 国产精品传媒在线| 69p69国产精品| jiyouzz国产精品久久| 中文字幕一区二区三区不卡在线 | 亚洲少妇最新在线视频| 972aa.com艺术欧美| 亚洲女人小视频在线观看| 色哟哟国产精品| 亚洲v精品v日韩v欧美v专区| 欧美va亚洲va国产综合| www.欧美亚洲| 韩国欧美国产1区| 亚洲综合在线第一页| 久久久亚洲精品一区二区三区 | 色综合久久久网| 国产很黄免费观看久久| 舔着乳尖日韩一区| 亚洲欧美日韩系列| av网站一区二区三区| 91丨porny丨户外露出| 亚洲精品在线免费播放| 色久综合一二码| 成人午夜伦理影院| 国产精品资源站在线| 视频一区在线播放| 亚洲一区在线视频观看| 亚洲美女屁股眼交3| 亚洲色图在线播放| 中文字幕亚洲视频| 亚洲视频图片小说| 国产中文一区二区三区| 极品尤物av久久免费看| 久久99深爱久久99精品| 麻豆专区一区二区三区四区五区| 视频一区国产视频| 日本免费在线视频不卡一不卡二 | 色悠悠亚洲一区二区| 91在线国产福利| 成人avav影音| 色诱视频网站一区| 精品视频全国免费看| 欧美一级免费观看| 精品av久久707| 国产蜜臀av在线一区二区三区| 国产精品久久久久久亚洲毛片| 国产精品午夜春色av| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 国产精品毛片久久久久久久| 国产精品夫妻自拍| 亚洲成人免费观看| 久久99精品久久久久| 成人丝袜视频网| 欧美伦理视频网站| 国产精品视频观看| 亚洲婷婷综合色高清在线| 亚洲第一狼人社区| 国产精一品亚洲二区在线视频| 91欧美激情一区二区三区成人| 精品视频123区在线观看| 亚洲国产一区二区三区青草影视| 免费成人美女在线观看.| 91丨porny丨在线| 久久精品亚洲麻豆av一区二区| 亚洲一区二区三区激情| 国产精品综合av一区二区国产馆| 欧美色综合网站| 日韩美女视频一区二区| 国产一区二区免费看| 欧美视频完全免费看| 日韩一区二区在线观看视频播放| 亚洲免费观看高清完整版在线 | 亚洲资源在线观看| 成人h动漫精品一区二区| 91精品国产福利在线观看| 一区二区三区不卡视频在线观看| 粉嫩av亚洲一区二区图片| 精品久久国产字幕高潮| 秋霞午夜av一区二区三区| 欧美三级在线播放| 国产久卡久卡久卡久卡视频精品| 日韩欧美aaaaaa| 日本在线不卡视频一二三区| 欧美另类变人与禽xxxxx| 亚洲黄色av一区| 欧美日韩在线免费视频| 成人精品一区二区三区中文字幕| 国产色综合一区| 天天影视色香欲综合网老头| 一本色道a无线码一区v| 国产精品理伦片| av不卡免费电影| 一区二区成人在线观看| 色综合中文综合网| 久久精品国产**网站演员| 欧美系列在线观看| 国产精品久线观看视频| 欧美综合欧美视频| 亚洲一区二区成人在线观看| 国产乱码精品一区二区三区av| 久久伊人蜜桃av一区二区| 国产成人精品影院| 中文字幕乱码日本亚洲一区二区| 成人深夜视频在线观看| 中文字幕亚洲成人| 国产福利一区二区三区在线视频| 欧美性猛交xxxx乱大交退制版 | 久久久亚洲高清| 亚洲激情欧美激情| 九一久久久久久| 日韩制服丝袜av| 亚洲一区二区三区自拍| 久久精品国产精品亚洲精品| 激情小说欧美图片| 欧美在线观看视频在线| 亚洲六月丁香色婷婷综合久久| 日韩国产精品久久久久久亚洲| 91在线视频网址| 国产精品亲子伦对白| 国产原创一区二区| 欧美一区二区免费| 亚洲福利电影网| 欧美视频一区二| 亚洲视频在线一区观看| 夫妻av一区二区| 久久人人97超碰com| 男人的天堂亚洲一区| 欧美一级片在线看| 国内成人自拍视频| 国产情人综合久久777777| 福利视频网站一区二区三区| 中文字幕av一区二区三区| 成人avav影音| 亚洲欧美视频在线观看| 91香蕉视频mp4| 亚洲精品中文在线观看| 日本道精品一区二区三区| 亚洲精品视频在线看| 色综合欧美在线| 国产精品久久久一区麻豆最新章节| 亚洲国产精品一区二区久久 | 亚洲午夜久久久久| 91精品国产综合久久香蕉麻豆| 韩国在线一区二区| 亚洲欧美电影院| 69成人精品免费视频| 国产sm精品调教视频网站| 亚洲天天做日日做天天谢日日欢| 91麻豆视频网站| 国产嫩草影院久久久久| 欧美顶级少妇做爰| 国产精品一区免费在线观看| 亚洲夂夂婷婷色拍ww47 | 亚洲人成人一区二区在线观看 | 久久综合九色综合97_久久久| 亚洲国产精品久久人人爱| 欧美无乱码久久久免费午夜一区| 偷拍一区二区三区四区| 国产女人18毛片水真多成人如厕 | 欧美日韩国产在线观看| 三级影片在线观看欧美日韩一区二区| 2020国产精品自拍| 欧美视频一二三区| 成人免费视频视频|