一、流程图:

二、目录结构:

C:\USERS\DAISY\PYCHARMPROJECTS\S12\MARKET

│ __init__.py

│ __init__.pyc

├─backend

│ │ __init__.py

│ │ __init__.pyc

│ │

│ ├─database_goods

│ │ dbgoods_con.py

│ │ dbgoods_con.pyc

│ │ goods_data.py

│ │ goods_data.pyc

│ │ modles.py

│ │ modles.pyc

│ │ __init__.py

│ │ __init__.pyc

│ │

│ ├─database_user

│ │ db_con.py

│ │ db_con.pyc

│ │ modle.py

│ │ modle.pyc

│ │ user_database.py

│ │ user_database.pyc

│ │ __init__.py

│ │ __init__.pyc

│ │

│ ├─logic

│ │ handle.py

│ │ handle.pyc

│ │ home.py

│ │ home.pyc

│ │ login.py

│ │ login.pyc

│ │ SHOPPING.py

│ │ SHOPPING.pyc

│ │ shopping_class.py

│ │ sockt.py

│ │ sockt.pyc

│ │ __init__.py

│ │ __init__.pyc

│ │

│ └─seller

│ │ __init__.py

│ │

│ ├─seller_db

│ │ __init__.py

│ │

│ └─seller_goods_db

│ __init__.py

├─config

│ seller_setting.py

│ seller_setting.pyc

│ settings.py

│ settings.pyc

│ __init__.py

│ __init__.pyc

└─frontend

user_acc.py

user_acc.pyc

__init__.py

__init__.pyc

View Code

三、代码展示:

1、backend

1)database_goods,指定购物的数据库,以及购物网站中的物品清单:

#!/usr/bin/env python

#-*- coding: utf-8 -*-# @Time :2017/9/25 9:28# @Author : xuxuedong

# @Site :

# @File : dbgoods_con.py

# @Software: PyCharm

import os, sysfromsqlalchemy import create_engine,Tablefromsqlalchemy.orm import sessionmakerfrommarket.config import settings

BASE_DIR=os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))

# print(BASE_DIR)

engine= create_engine(settings.DB_CONN,encoding='utf-8',echo =True) #指定Mysql数据库引擎

SessionCls= sessionmaker(bind=engine) #创建与数据库的会话session class,注意,这里返回给session的是个class,不是实例

session= SessionCls()

dbgoods_con.py

以下中为模拟的数据库中物品信息,当然可参考models.py存入数据库中。

#!/usr/bin/env python

#-*- coding: utf-8 -*-# @Time :2017/5/21 11:13# @Author : xuxuedong

# @Site :

# @File : goods_data.py

# @Software: PyCharm

import os, sys'''模拟数据库,可以用sqlachmy单独建立在seller中创建库'''DATABASE_MAN =[

{"name": "男士寸衣", "price": 100},

{"name": "男士长裤", "price": 200},

{"name": "男士皮鞋", "price": 190},

{"name": "男士皮带", "price": 100},

{"name": "男士外衣", "price": 300},

]

DATABASE_WOMAN=[

{"name": "女士寸衣", "price": 300},

{"name": "女士内衣", "price": 103},

{"name": "女士鞋", "price": 200},

{"name": "女士长裙", "price": 198},

]

DATABASE_CHILD=[

{"name": "迪士尼", "price": 300},

{"name": "玩具飞机", "price": 103},

{"name": "玩具汽车", "price": 200},

{"name": "童装", "price": 198},

]

goods_data.py

以下为已经购买存入数据库中的物品数据库表创建代码实现

#!/usr/bin/env python#-*- coding: utf-8 -*-#@Time : 2017/9/25 9:38#@Author : xuxuedong#@Site :#@File : modles.py#@Software: PyCharm

importos, sys,sqlalchemyfrom sqlalchemy importcreate_engine,Table, MetaDatafrom sqlalchemy.ext.declarative importdeclarative_basefrom sqlalchemy importColumn, Integer, String,ForeignKey,UniqueConstraint,UnicodeText,DateTimefrom sqlalchemy.orm importrelationshipfrom sqlalchemy importor_,and_from sqlalchemy importfuncfrom sqlalchemy_utils importChoiceType,PasswordTypefrom sqlalchemy.orm importsessionmakerfrom market.backend.database_goods importdbgoods_con

BASE_DIR=os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))#engine = create_engine("mysql+pymysql://root:123@localhost/shooping",encoding='utf-8', echo=True)

Base =declarative_base()

User2goods= Table('user_to_goods',Base.metadata,

Column('binduser_id',ForeignKey('goods.id'),primary_key=True)

)classGOODS(Base):__tablename__ = "goods"id= Column(Integer,primary_key=True)

userid= Column(String(64),unique=True,nullable=False)

goods= Column(String(64),unique=True,nullable=False)

numble= Column(String(128),unique=True,nullable=False)

price= Column( String(64),unique=True,nullable=False)def __repr__(self):return "" %(self.id,self.userid,self.goods,self.numble)#class USER(Base):#__tablename__ = "user"#id = Column(Integer,primary_key=True)#user = Column(String(64),unique=True,nullable=False)#password = Column(String(64),unique=True,nullable=False)## user_id = relationship (GOODS)#def __repr__(self):#return "" % (self.id,self.user,self.password)

'''##创建表

metadata = MetaData()

USER = Table('USER', metadata,

Column('id', Integer, primary_key=True),

Column('user', String(64)),

Column('password', String(64))

)

metadata.create_all(engine)

conn = engine.connect()'''

'''#创建表

metadata = MetaData()

USER = Table('goods', metadata,

Column('id', Integer, primary_key=True),

Column('userid',String(64)),

Column('goods', String(64)),

Column('numble', String(128))

)

metadata.create_all(engine)

conn = engine.connect()'''

if __name__ == '__main__':

dbgoods_con.SessionCls= sessionmaker(bind=dbgoods_con.engine) #创建与数据库的会话session class ,注意,这里返回给session的是个class,不是实例

session =dbgoods_con.SessionCls()#SessionCls = sessionmaker(bind=engine)

#session = SessionCls()

#H1 = USER( user ='admin1',password = 'admin12')

#H2 = USER( user ='admin2',password = 'admin22')

## h2 = User(hostname ='ubuntu2',ip_addr = '192.168.1.101',port = 10001)

#session.add_all([H1,H2]) #这是增加数据

#session.commit()

'''查询出数据库信息

for name, password in session.query(USER.user,USER.password):

print ("用户名:%s的密码:%s"%(name,password))'''

modles.py

2)database_user,位用户信息数据库,存放用户名及密码,用于登录验证,注册成功,用户信息写入数据库:

db_con用于连接数据库

#!/usr/bin/env python#-*- coding: utf-8 -*-#@Time : 2017/9/22 15:37#@Author : xuxuedong#@Site :#@File : db_con.py#@Software: PyCharm

importos, sysfrom sqlalchemy importcreate_engine,Tablefrom sqlalchemy.orm importsessionmakerfrom market.config importsettings,seller_setting

BASE_DIR=os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))#print(BASE_DIR)

engine = create_engine(settings.DB_CONN,encoding='utf-8')

SessionCls= sessionmaker(bind=engine) #创建与数据库的会话session class ,注意,这里返回给session的是个class,不是实例

session = SessionCls()

db_con.py

modle.py用于创建用户表

#!/usr/bin/env python#-*- coding: utf-8 -*-#@Time : 2017/9/22 15:21#@Author : xuxuedong#@Site :#@File : modle.py#@Software: PyCharm

importos, sys,sqlalchemyfrom sqlalchemy importcreate_engine,Table, MetaDatafrom sqlalchemy.ext.declarative importdeclarative_basefrom sqlalchemy importColumn, Integer, String,ForeignKey,UniqueConstraint,UnicodeText,DateTimefrom sqlalchemy.orm importrelationshipfrom sqlalchemy importor_,and_from sqlalchemy importfuncfrom sqlalchemy_utils importChoiceType,PasswordTypefrom sqlalchemy.orm importsessionmakerfrom market.backend.database_user importdb_con

BASE_DIR=os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))#print(BASE_DIR)

engine = create_engine("mysql+pymysql://root:123@localhost/shooping",encoding='utf-8', echo=True)

Base= declarative_base() #生成一个SqlORM 基类Base = declarative_base()

User2goods= Table('user_to_goods',Base.metadata,

Column('binduser_id',ForeignKey('goods.id'),primary_key=True)

)classGOODS(Base):__tablename__ = "goods"id= Column(Integer,primary_key=True)

userid= Column(String(64),unique=True,nullable=False)

goods= Column(String(64),unique=True,nullable=False)

numble= Column(String(128),unique=True,nullable=False)

price= Column( String(64),unique=True,nullable=False)#def __repr__(self):

#return "" % (self.id,self.goods,self.numble)

classUSER(Base):__tablename__ = "user"id= Column(Integer,primary_key=True)

user= Column(String(64),unique=True,nullable=False)

password= Column(String(64),unique=True,nullable=False)#user_id = relationship (GOODS)

#def __repr__(self):

#return "" % (self.id,self.username,self.password)

'''#创建表

metadata = MetaData()

USER = Table('USER', metadata,

Column('id', Integer, primary_key=True),

Column('user', String(64)),

Column('password', String(64))

)

metadata.create_all(engine)

conn = engine.connect()'''

'''metadata = MetaData()

USER = Table('goods', metadata,

Column('id', Integer, primary_key=True),

Column('userid',String(64)),

Column('goods', String(64)),

Column('numble', String(128)),

Column('price', String(64))

)

metadata.create_all(engine)

conn = engine.connect()'''

if __name__ == '__main__':

db_con.SessionCls= sessionmaker(bind=db_con.engine) #创建与数据库的会话session class ,注意,这里返回给session的是个class,不是实例

session =db_con.SessionCls()## SessionCls = sessionmaker(bind=engine)

## session = SessionCls()

## # H1 = USER( user ='admin1',password = 'admin12')

#H2 = GOODS( userid = 'admin',goods = '男士寸衣',numble='10',price=10000)

## # h2 = User(hostname ='ubuntu2',ip_addr = '192.168.1.101',port = 10001)

#obj = session.query(GOODS).filter(GOODS.goods=='男士长裤').first() #查找数据库中的localhost第一个数据

#print(obj)

#for name, goods , numble, price in session.query(GOODS.userid,GOODS.goods,GOODS.numble,GOODS.price):

#print ("用户名:%s购买的物品:%s 数量:%s 付款:%s"%(name,goods , numble, price))

##查询出数据库信息#obj = session.query(GOODS.userid,GOODS.goods,GOODS.numble,GOODS.price).filter(GOODS.userid=="admin").all()## print(obj)#for i in obj:## print(i)## print ("用户名:%s"%(i.userid))#print ("用户名:%s购买了物品:%s 数量:%s 付款:%s"%(i.userid,i.goods , i.numble, i.price))#

#

## session.add_all([H2]) #这是增加数据## session.commit()#

##查询出数据库信息#for name, password in session.query(USER.user,USER.password):#print ("用户名:%s的密码:%s"%(name,password))

modle.py

3)logic用于程序逻辑处理,含登录、验证、购物、以及银行sockt接口

handle.py用于专区物品展示

#!/usr/bin/env python#coding=utf-8#print sys.getdefaultencoding()

from market.backend.database_goods importgoods_datadefman ():for i ingoods_data.DATABASE_MAN :

c= i["name"]

d= i["price"]print("%s\t价格%s\t" %(c,d))defwoman():for i ingoods_data.DATABASE_WOMAN :

c= i["name"]

d= i["price"]print("%s\t价格%s\t" %(c,d))#print("welcome to man pages!")

defchilrd():for i ingoods_data.DATABASE_CHILD :

c= i["name"]

d= i["price"]print("%s\t价格%s\t" % (c,d))

handle.py

home.py用于首页展示:

#!/usr/bin/env python#-*- coding: utf-8 -*-#@Time : 2017/6/2 16:46#@Author : xuxuedong#@Site :#@File : home.py#@Software: PyCharm

importos, sys#def man ():#print("welcom to 男装专区.")#def woman ():#print("welcom to 女装专区.")#def chlid():#print("welcom to 儿童专区.")

deflogin():print(''.center(82,'*'))print('*'+' '.center(80)+'*')print(''.ljust(1,'*')+'欢迎来到地猫购物平台'.center(90,' ')+''.ljust(1,'*'))print('*'+' '.center(80)+'*')print(''.center(82,'*'))print('|'.ljust(5,' ')+'1.用户登录'.center(22,' ')+' '.ljust(10,' ')+'2.男装专区'+''.ljust(10,' ')+'3.女装专区'.center(31,' ')+'|'.ljust(5,' '))print('|'.ljust(5,' ')+'4.儿童专区'.center(22,' ')+' '.ljust(10,' ')+'5.用户注册'+''.ljust(7,' ')+'6.付款'.center(32,' ')+'|'.ljust(5,' '))print('|'.ljust(8,' ')+'7.本次消费记录'.center(22,' ')+' '.ljust(9,' ')+'8.历史消费'+''.ljust(7,' ')+ '9.退出'.center(32,' ')+'|'.ljust(5,' '))#print('1.用户登录'+''.ljust(1,'')+'2.男装专区')

home.py

login.py用于登录验证、用户注册:

#!/usr/bin/env python#coding=utf-8#-*- coding: utf-8 -*-#@Time : 2017/6/5 15:34#@Author : xuxuedong#@Site :#@File : login.py#@Software: PyCharm

importos, sysimportjson,shelvefrom market.backend.database_user importuser_databasefrom market.backend.database_user.db_con importsessionfrom market.backend.database_user importmodle

BASE_DIR=os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))

user_status=False'''#此为不在数据库中取数据,需单独建立模拟数据库列表

def login(func):

def inner(*args,**kwargs):

global user_status

count = 0

if user_status == False:

username = raw_input("请输入您的账号:")

password = raw_input("请输入您的密码:")

# for user in user_database.DATABASE_USER:

if username in user_database.DATABASE_USER and password == user_database.DATABASE_USER[username]:

print("welcome login....")

user_status = True

else:

print("wrong username or password!")

if user_status == True:

return func(*args,**kwargs) # 看这里看这里,只要验证通过了,就调用相应功能

return inner #用户调用login时,只会返回inner的内存地址,下次再调用时加上()才会执行inner函数

# din = user_database.DATABASE_USER'''

#userid = None

deflogin(func):'''#认证模块装饰器,从mysql数据库中提取用户名密码,认证成功并且返回用户名密码,待购物时提取userid=用户名'''

#userid = None

definner(arg1,INPUT,userid):globaluser_status#userid = None

count =0if user_status ==False:while count <3:

username= raw_input("\033[32;1mUsername:\033[0m").strip()if len(username) ==0:continuepassword= raw_input("\033[32;1mPassword:\033[0m").strip()if len(password) ==0:continueuser_obj= session.query(modle.USER).filter(modle.USER.user==username,

modle.USER.password==password).first()if user_obj !=None:print("welcome login....")

userid=username

user_status=True

func(arg1,INPUT,userid)###可返回数据待购物时提取userid=用户名

#return userid == username

break

else:print("wrong username or password, you have %s more chances." %(3-count-1))

count+=1

else:print("too many attempts.")if user_status ==True:return func(arg1,INPUT,userid) #看这里看这里,只要验证通过了,就调用相应功能

return inner #用户调用login时,只会返回inner的内存地址,下次再调用时加上()才会执行inner函数

defregiste():'''注册模块,注册时先查找mysql数据库中是否有这个用户,如果没有,输入两次相同用户名密码注册至myslq数据库

:return:'''

globaldin

status=False

count=0

counts=0while count <3:if user_status ==True:print ("你已经登录不需要注册!!!")break

if status ==True or counts == 2:break

else:

user_name= raw_input("请输入您要注册的账号的账号:")if len(user_name) ==0:print ("用户名不能为空!!!")continuehost_obj= session.query(modle.USER).filter(modle.USER.user ==user_name ).first()#print(host_obj)

if host_obj !=None:print("用户名:%s已经注册!请从新输入"%(user_name))

count+=1

continue

else:print("用户名:%s可用"%(user_name))

userpasword= raw_input("请输入您要注册的账号密码:")if len(userpasword) ==0:print ("密码不能为空!!!")while counts < 3:

confirmpasswrod= raw_input("请再次输入您要注册的账号密码:")if userpasword !=confirmpasswrod:print("两次输入密码不一致请从新输入!!")

counts+=1

#continue

else:

uname= modle.USER(user = user_name ,password =userpasword )

session.add_all([uname,])#连接数据库并注册用户只数据库

session.commit()print("账号:%s 注册成功"%(user_name))

status=Truebreak

#print (userid)

login.py

SHOPPING.py用于购物以及结算购物

#!/usr/bin/env python#-*- coding: utf-8 -*-#@Time : 2017/6/2 17:47#@Author : xuxuedong#@Site :#@File : SHOPPING.py#@Software: PyCharm

importos, sysfrom market.backend.logic importhandle,home,loginfrom market.backend.database_goods importmodlesfrom market.backend.database_goods.dbgoods_con importsession

BASE_DIR=os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))

shopping_cart={}

totel=0

@login.login#购物之前需认证登录

defSHOP(arg1,INPUT,userid):globalshopping_cart,totel

status1=FalsewhileTrue:if INPUT == "2":

handle.man()elif INPUT == "3":

handle.woman()elif INPUT == "4":

handle.chilrd()#else:

#print("输入错误")

#continue

#print(userid)

#print (type(numble_goods))

#print(userid)

shoops = raw_input("请输入商品名称(Q结账):")for item inarg1:if shoops.upper() == "Q":return status1 ==Truebreak

if shoops in item["name"]:

numble_goods= raw_input("请输入购买数量:")

int(numble_goods)#print(item["price"])

name = item["name"]

totel= int( item["price"]) *int(numble_goods)#if name in shopping_cart.items():

#shopping_cart[name]["num"] = numble_goods

#shopping_cart[name]["pice"] = item["price"]

#print (shopping_cart.keys)

shoop = modles.GOODS(userid = userid ,goods = shoops,numble=numble_goods,price=totel )

session.add_all([shoop,])#将购物信息写入数据库中

session.commit()

shopping_cart[name]={"price":item["price"],"numble":numble_goods}print(shopping_cart)#elif shoops.upper() == "Q":

#break

# #totel1 = 0

#for i, j in shopping_cart.items():

## i[name]

#print(i)

#signle_sum =int(j["price"]) * int(j["numble"])

#print (type(signle_sum))

#int(signle_sum)

#totel1 = totel + signle_sum

#print("购买商品%s\t价格%s\t数量%s"%(i,j["price"],int(j["numble"])))

#print(totel1)

stop= raw_input("是否继续购物(Y/N):")

totel1=0if stop.upper() == "Y":for i, j inshopping_cart.items():

signle_sum=int(j["price"]) * int(j["numble"])print(type(signle_sum))

int(signle_sum)

totel1= totel1 +signle_sumprint("购买商品%s\t价格%s\t数量%s"%(i,j["price"],int(j["numble"])))print("此次购物消费%s"%totel1)#print(shopping_cart)

#print("总价%s"%totel)

#print(shopping_cart)

print("====================")if stop.upper() == "N":#return shopping_cart,totel

#print("此次购物消费%s"%totel1)

break

#break

Totel1 =0

Totel2=0defshopping_car():'''#结算时结算此次购物总价并打印此次购物清单购物

:return:'''

globalshopping_cart,totel,Totel1,Totel2for i, j inshopping_cart.items():

signle_sum= int(j["price"]) * int(j["numble"])

Totel2= Totel2 +signle_sum

Totel1= Totel1 +signle_sumprint("购买商品%s\t价格%s\t数量%s"%(i,j["price"],int(j["numble"])))print("总价%s"%Totel2)#print(shopping_cart)

print("====================")#def cash():#global shopping_cart,totel#for i, j in shopping_cart.items():#signle_sum = j["price"] * j["num"]#Totel2 = totel + signle_sum#print("总价%s"%Totel2)## print(type(stop))#if stop.upper() == "Y":#return shopping_cart,totel#break

SHOPPING.py

socket.py用于连接银行接口

#!/usr/bin/env python#-*- coding: utf-8 -*-#@Time : 2017/6/14 12:59#@Author : xuxuedong#@Site :#@File : sockt.py#@Software: PyCharm

importsocket#from market.frontend import user_acc#from market.backend.logic import SHOPPING

defAPI_Atm(args):

HOST, PORT= "localhost", 9999

#data = " hahah".join(sys.argv[1:])

#Create a socket (SOCK_STREAM means a TCP socket)

sock =socket.socket(socket.AF_INET, socket.SOCK_STREAM)

sock.connect((HOST, PORT))

sock.sendall(bytes(args))

server_reply= sock.recv(1024)print("server said:%s"%str(server_reply))#while True:

#msg = raw_input(">>>>>").strip()

#sock.sendall(bytes(user_acc.bank_card))

#server_reply = sock.recv(1024)

#print("server said:%s"%str(server_reply))

#sock.sendall(bytes(user_acc.bank_card_passwd))

#server_reply = sock.recv(1024)

#print("server said:%s"%str(server_reply))

#sock.sendall(bytes(SHOPPING.totel))

#server_reply = sock.recv(1024)

#print("server said:%s"%str(server_reply))

#try:

## Connect to server and send data

#sock.connect((HOST,PORT))

#sock.sendall(bytes(data))

# ## Receive data from the server and shut down

#received = str(sock.recv(1024))

#finally:

sock.close()#print("Sent: {}".format(data))#print("Received: {}".format(received))

socket.py

2、config

settings.py用于定义数据库连接:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @Time : 2017/5/20 23:17

# @Author : xuxuedong

# @Site :

# @File : settings.py

# @Software: PyCharm

import os, sys

BASE_DIR =os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

# print(BASE_DIR)

DB_CONN ="mysql+mysqldb://root:123@localhost:3306/shooping" #指定连接数据库

DB_CONN1 ="mysql+mysqldb://root:123@localhost:3306/goods" #指定连接数据库

3、frontend

user_acc.py程序入口

#!/usr/bin/env python#-*- coding: utf-8 -*-#@Time : 2017/5/20 22:43#@Author : xuxuedong#@Site :#@File : user_acc.py#@Software: PyCharm#print sys.getdefaultencoding()

importos, sysfrom market.backend.logic importhandle,home,SHOPPING,login,socktfrom market.backend.database_goods importgoods_data

BASE_DIR=os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))#home.man()#home.woman()#home.chlid()#home.login()

userid1 =[]

@login.logindefhomelogin (arg1,INPUT,userid):#print(userid)

userid1.append(userid)#print(userid1)

#user_status = True

whileTrue:#global shopping_cart

#global totel

home.login()

CHOSE= raw_input("请选择你要访问的专区:")if CHOSE == "1":

arg1=None

INPUT=None

userid=None

homelogin(arg1,INPUT,userid)print(userid1[0])elif CHOSE == "2":#homelogin()

arg1 =goods_data.DATABASE_MAN

INPUT="2"userid=None

homelogin(arg1,INPUT,userid)

userid=userid1[0]

SHOPPING.SHOP(arg1,INPUT,userid)elif CHOSE == "3":#homelogin()

arg1 =goods_data.DATABASE_WOMAN

INPUT="3"

#handle.woman()

userid =None

homelogin(arg1,INPUT,userid)

userid=userid1[0]

SHOPPING.SHOP(arg1,INPUT,userid)print(userid)elif CHOSE == "4":#homelogin()

#userid = login.userid

#print (userid)

arg1 =goods_data.DATABASE_CHILD

INPUT="4"userid=None

homelogin(arg1,INPUT,userid)

userid=userid1[0]#handle.chilrd()

SHOPPING.SHOP(arg1,INPUT,userid)elif CHOSE == "5":

login.registe()elif CHOSE == "6":

chash= raw_input("是否结算(Y/N):")if chash.upper() == "Y":

user_flag=None

passwd_flag=None#print("购物清单是:%s"%SHOPPING.shopping_cart)

SHOPPING.shopping_car()

a=SHOPPING.Totel2

bank_card= raw_input("请输入你的银行卡号:")

bank_card_passwd= raw_input("请输入你的银行卡密码:")

sockt.API_Atm(bank_card)

sockt.API_Atm(bank_card_passwd)

sockt.API_Atm(SHOPPING.Totel2)print(a)break

elif CHOSE == "7":

SHOPPING.shopping_car()print(SHOPPING.Totel1)elif CHOSE == "8":pass

#查询数据库中的用户所购物的信息即可。

elif CHOSE == "9":break

if __name__ == "__main__":

user_status=False

T=0

bank_card=None

bank_card_passwd= None

user_acc.py

四、程序运行截图:

登录:

先注册用户:选择5

注册成功可选择登录,也可直接选择专区,直接选择专区会进行登录验证:

选择男装专区2:提示输入用户名密码验证,成功后可进行购物:

购物:

查看本次消费记录:选择7

如果想不结束,再次购物则不需要验证了:如选择4儿童专区

再次购物在查看消费记录:

查看mysql数据库中信息:

查看数据库中用户信息:

goods购物表MySQL的代码_python采用sqlachmy购物商城相关推荐

  1. goods购物表MySQL的代码_第一节:数据库及表

    在Mysql中建立一个数据库cart,在库中建立两个表,分别是:goods(商品表),order(订单表). 本教程用命令创建数据库,用命令创建数据库习惯了,比用PhpMyAdmin快,因为用phpM ...

  2. 99乘法口诀表python语言代码_python 99乘法口诀表

    for i in range(1, 10): print(" ".join(["%d*%d=%d" % (j, i, i*j) for j in range(1 ...

  3. python编写购物程序_Python实现购物程序思路及代码

    要求: 启动程序后,让用户输入工资,然后打印出带有序号的商品列表 用户输入商品序号购买相应的商品,或者输入 ' q ' 退出购买界面 选择商品后,检查余额是否足够,够则直接扣款,不够则提示余额不足 用 ...

  4. 面试官问:为什么MySQL的索引不采用Kafka的索引机制

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 第一眼看到这个问题,也是很迷惑的,谁没事会问这种问题.然而,事实上 ...

  5. python3图片转代码_python3图片转换二进制存入mysql示例代码

    python3图片转换二进制存入mysql示例代码 发布于 2014-09-29 18:00:01 | 198 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面 ...

  6. Mysql基础代码(不断完善中)

    Mysql基础代码,不断完善中~ /* 启动MySQL */ net start mysql/* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码/* 跳过权限验证 ...

  7. php mysql curd_Php mysql 常用代码、CURD操作以及简单查询

    C/S:Client Server B/S:Brower Server php主要实现B/S LAMP :Linux系统    A阿帕奇服务器    Mysql数据库   Php语言 mysql常用代 ...

  8. php代码连接mysql数据库,php连接mysql数据库代码

    php连接mysql数据库代码 复制代码 代码如下: mysql_connect("localhost", "root","1981427" ...

  9. 数据库 Mysql 终端代码

    2019独角兽企业重金招聘Python工程师标准>>> 1.连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL. 首先打开DOS ...

  10. 从大数据量分库分表 MySQL 合并迁移数据到 TiDB

    如果分表数据总规模特别大(例如大于 1 TiB),并且允许 TiDB 集群在迁移期间无其他业务写入,那么你可以使用 TiDB Lightning 对分表数据进行快速合并导入,然后根据业务需要选择是否使 ...

最新文章

  1. chrome java上传文件_springboot+webuploader 实现大文件切片上传,兼容IE8+,chrome等浏览器,可运行...
  2. 安装并测试nvenc linux sdk
  3. Spark入门(七)Spark SQL thriftserver/beeline启动方式
  4. SQL Server游标使用快速上手
  5. c语言 键盘输入结构体,C语言结构体问题
  6. linux yast命令,Linux_SUSE Linux系统上双网卡绑定方法,1、使用yast工具配置第一块网 - phpStudy...
  7. python通讯录管理程序的用户可行性_通讯录管理系统可行性分析报告
  8. c语言error lnk 2005,易语言5.71静态编译问题LIBC.lib(crt0dat.obj) : error LNK2005:
  9. 合抱之木,生于毫末; 九层之台,起于垒土。
  10. css 1倍图 2倍图 3倍图
  11. 华为鸿蒙即兴评述,华为的理性,鸿蒙的节奏
  12. 《我不是潘金莲》所揭示的
  13. CSS面试须知--选择器
  14. 打码兼职练习程序下载及说明
  15. 智能化里面计算机网络设计思路,智能化设计思路.doc
  16. C# 按Button弹出新的窗体 Show()方法 和 ShowDialog()方法
  17. 六度空间 (bfs,广度优先)
  18. javaweb中ffmpeg视频转码h264出现卡住不执行的解决办法(看到最后面就是答案了)
  19. 走路步数怎么在屏幕上显示_华为手机走路不增加步数 走路步数怎么在屏幕上显示...
  20. 如何将iTunes DRM-ed M4P转换为MP3?

热门文章

  1. python中静态方法、类方法、属性方法区别
  2. java 学习笔记之AtomicInteger类的使用
  3. 《Pro Ogre 3D Programming》 读书笔记 之 第四章 开始使用OGRE (转)
  4. 数据库信息查询(作者不是我)
  5. English Learning from research paper
  6. How to scale the BERT Training with Nvidia GPUs?
  7. AIS 2021顶级论文报告会论文征集与听众报名通知
  8. 65 年来,全英国向他道歉三次
  9. AAAI 2019 使用循环条件注意力结构探索回答立场检测任务
  10. 【论文笔记】中文词向量论文综述(二)