基于Python如何实现商城网站的客户端和商家端
Admin 2022-06-30 群英技术资讯 742 次浏览
这篇文章给大家介绍了“基于Python如何实现商城网站的客户端和商家端”的相关知识,讲解详细,步骤过程清晰,有一定的借鉴学习价值,因此分享给大家做个参考,感兴趣的朋友接下来一起跟随小编看看吧。本项目使用Python语言编写,实现了顾客端和商家端。
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)
代码较多不便全部放出,请自行下载或克隆仓库。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了Python处理mat文件的三种方式小结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
字符串英文名string,简称str。 字符串就是由一个个字符连接起来的组合, 你平时所见的字母、数字、汉字、符号都是字符。
这篇文章主要介绍了利用Python实现读取二进制文件,文章尝试使用Python中的内置open函数使用默认读取模式读取zip文件,下文详细介绍,需要的小伙伴可以参考一下
为什么要用numpy? Python中提供了list容器,可以当作数组使用。但列表中的元素可以是任何对象,因此列表中保存的是对象的指针,这样一来,为了保存一个简单的列表[1,2,3]。就需要三个指针和三个整数对象。对于数值运算来说,这种结构显然不够高效。
这篇文章主要介绍了Python文件名的匹配之clob库,文中有非常详细的代码示例,对正在学习python的小伙伴们有很好地帮助哟,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008