电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:104日期:2022-06-21 09:09:34
完整項(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ù)庫(kù)進(jìn)行操作。 mysql_op.py:處理商家和顧客對(duì)數(shù)據(jù)庫(kù)的操作。主要代碼

shopMain.py

import sysfrom PyQt5.QtCore import *from PyQt5.QtWidgets import *from PyQt5.QtGui import *import shop.register_windowfrom 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) returnif pass1 != pass2: QMessageBox.information(self, '注冊(cè)', '兩次密碼不同', QMessageBox.Yes) returndata = {’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 userusername = self.username.text()password = self.password.text()if username == ’’ or password == ’’: QMessageBox.information(self, '登錄', '用戶名和密碼不能為空', QMessageBox.Yes) returndata = {’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 == ’’: returndata = {’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_namegoods_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_namedata = {’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)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 缝纫客| 美国HASKEL增压泵-伊莱科elettrotec流量开关-上海方未机械设备有限公司 | 电缆接头_防水接头_电缆防水接头 - 乐清市新豪电气有限公司 | 英国公司注册-新加坡公司注册-香港公司开户-离岸公司账户-杭州商标注册-杭州优创企业 | 领袖户外_深度旅游、摄影旅游、小团慢旅行、驴友网 | 广东恩亿梯电源有限公司【官网】_UPS不间断电源|EPS应急电源|模块化机房|电动汽车充电桩_UPS电源厂家(恩亿梯UPS电源,UPS不间断电源,不间断电源UPS) | 税筹星_灵活用工平台_企业财务顾问_财税法薪综合服务平台 | 河南包装袋厂家_河南真空袋批发价格_河南服装袋定制-恒源达包装制品 | 上海瑶恒实业有限公司|消防泵泵|离心泵|官网 | 天津试验仪器-电液伺服万能材料试验机,恒温恒湿标准养护箱,水泥恒应力压力试验机-天津鑫高伟业科技有限公司 | 北京晚会活动策划|北京节目录制后期剪辑|北京演播厅出租租赁-北京龙视星光文化传媒有限公司 | 集装箱展厅-住人集装箱住宿|建筑|房屋|集装箱售楼处-山东锐嘉科技工程有限公司 | 基本型顶空进样器-全自动热脱附解吸仪价格-AutoHS全模式-成都科林分析技术有限公司 | 聚天冬氨酸,亚氨基二琥珀酸四钠,PASP,IDS - 远联化工 | 旗帜网络笔记-免费领取《旗帜网络笔记》电子书 | 美侍宠物-专注宠物狗及宠物猫训练|喂养|医疗|繁育|品种|价格 | 西安耀程造价培训机构_工程预算实训_广联达实作实操培训 | 冲锋衣滑雪服厂家-冲锋衣定制工厂-滑雪服加工厂-广东睿牛户外(S-GERT) | 发电机组|柴油发电机组-批发,上柴,玉柴,潍柴,康明斯柴油发电机厂家直销 | 冰晶石|碱性嫩黄闪蒸干燥机-有机垃圾烘干设备-草酸钙盘式干燥机-常州市宝康干燥 | 气动机械手-搬运机械手-气动助力机械手-山东精瑞自动化设备有限公司 | 小型手持气象站-空气负氧离子监测站-多要素微气象传感器-山东天合环境科技有限公司 | 抖音短视频运营_企业网站建设_网络推广_全网自媒体营销-东莞市凌天信息科技有限公司 | 英思科GTD-3000EX(美国英思科气体检测仪MX4MX6)百科-北京嘉华众信科技有限公司 | 无线对讲-无线对讲系统解决方案-重庆畅博通信 | 玻璃钢板-玻璃钢防腐瓦-玻璃钢材料-广东壹诺 | 光伏家 - 太阳能光伏发电_分布式光伏发电_太阳能光伏网 | 一礼通 (www.yilitong.com)-企业礼品解决方案一站式服务平台 | 全温恒温摇床-水浴气浴恒温摇床-光照恒温培养摇床-常州金坛精达仪器制造有限公司 | 水厂污泥地磅|污泥处理地磅厂家|地磅无人值守称重系统升级改造|地磅自动称重系统维修-河南成辉电子科技有限公司 | 粉末包装机,拆包机厂家,价格-上海强牛包装机械设备有限公司 | IWIS链条代理-ALPS耦合透镜-硅烷预处理剂-上海顶楚电子有限公司 lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 青岛侦探调查_青岛侦探事务所_青岛调查事务所_青岛婚外情取证-青岛狄仁杰国际侦探公司 | 防腐储罐_塑料储罐_PE储罐厂家_淄博富邦滚塑防腐设备科技有限公司 | 抖音短视频运营_企业网站建设_网络推广_全网自媒体营销-东莞市凌天信息科技有限公司 | 爱佩恒温恒湿测试箱|高低温实验箱|高低温冲击试验箱|冷热冲击试验箱-您身边的模拟环境试验设备技术专家-合作热线:400-6727-800-广东爱佩试验设备有限公司 | 扬尘在线监测系统_工地噪声扬尘检测仪_扬尘监测系统_贝塔射线扬尘监测设备「风途物联网科技」 | 耐酸泵,耐腐蚀真空泵,耐酸真空泵-淄博华舜耐腐蚀真空泵有限公司 精密模具-双色注塑模具加工-深圳铭洋宇通 | 贴板式电磁阀-不锈钢-气动上展式放料阀-上海弗雷西阀门有限公司 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 | 南京和瑞包装有限公司| 球磨机,节能球磨机价格,水泥球磨机厂家,粉煤灰球磨机-吉宏机械制造有限公司 |