學習python和資料分析推薦地方: www.lynda.com獲取lynda官網會員的方式:
from pymysql import connect
class jd(object):
"""建立乙個京東的服務"""
def __init__(self):
"""初始化操作,資料庫,類屬性"""
# 建立乙個sql連線
self.conn = connect(host="localhost", port=3306,
database="jing_dong", user="root",
password="mysql", charset="utf8")
# 建立乙個游標
self.cursor = self.conn.cursor()
self.customer_id = none
def run(self):
while true:
jd.print_menu()
option = input("輸入:")
if option == "1":
self.show_all_goods()
elif option == "2":
self.log_in()
pass # todo 登陸
elif option == "3":
self.register()
pass # todo 註冊
elif option == "4":
self.place_order()
pass # todo 下訂單
elif option == "5":
break
pass # todo 退出系統
def show_all_goods(self):
try:
sql = """select * from goods"""
self.cursor.execute(sql)
for item in self.cursor.fetchall():
print(item)
except exception as e:
print("讀取資料失敗")
def log_in(self):
"""登入操作"""
user_name = input("請輸入使用者名稱:")
password = input("請輸入密碼:")
sql = """select * from user_info where user_name=%s and password=%s"""
if not self.cursor.execute(sql, [user_name, password]):
print("使用者名稱或者密碼錯誤!")
return
user_id = self.cursor.fetchone()[0]
print("登入成功!")
# 儲存本地登入狀態
self.customer_id = user_id
def register(self):
user_name = input("請輸入使用者名稱:")
try:
sql = """select * from user_info where user_name=%s"""
if self.cursor.execute(sql, [user_name]):
print("該使用者名稱已經註冊!")
return
password = input("請輸入密碼:")
sql = """insert into user_info value(0, %s, %s, %s, %s)"""
self.cursor.execute(sql, [user_name, password, address, mobile])
self.conn.commit()
except exception as e:
print("註冊失敗!")
self.conn.rollback()
return
else:
print("註冊成功!")
def place_order(self):
customer_id = int(self.customer_id)
if self.customer_id is none:
print("請先登入賬號!")
return
# 選擇商品,獲取商品id
self.show_all_goods()
goods_id = input("請輸入您要購買的商品編號:")
sql = """select * from goods where id=%s"""
if not self.cursor.execute(sql, [goods_id]):
print("輸入有誤,請重試!")
print("購買失敗!")
return
print("您選擇的商品資訊為:", self.cursor.fetchall())
try:
# 新增下單時間, 商品id到orders_list
sql = """insert into orders_list values(0, now(), %s)"""
self.cursor.execute(sql, [customer_id])
order_id = self.cursor.lastrowid
# 新增order_id, goods_id 和qty到order_detail
sql = """insert into order_detail values(0, %s, %s, 1)"""
self.cursor.execute(sql, [order_id, goods_id])
# 提交sql請求
self.conn.commit()
except exception as e:
print("購買失敗!", e)
self.conn.rollback()
return
finally:
print("購買成功!")
@staticmethod
def print_menu():
menu = """
----歡迎來到 京東**-----
1 顯示所有商品
2 登陸
3 註冊
4 下訂單
5 退出系統
請開始你的選擇-------:
"""print(menu)
def __del__(self):
"""退出程式,關燈"""
self.cursor.close()
self.conn.close()
def main():
# create mall service
jd = jd()
# start service
jd.run()
if __name__ == '__main__':
main()
京東商城之手機購買推薦
這幾年各大廠商發布了多款炫酷手機上市,想想本人的手機已經用了兩年多,也該光榮退役了。作為乙個理性派,發揮我一如既往的聰明智慧型和研究精神,秉著絕不被廠家的花式宣傳所矇騙 絕不被商家的虛假折扣所忽悠的原則,絕對要找到口碑最好 價效比最高的手機。由於準備在京東購買,本人打算以京東 中目前在售 為500元...
京東商城EDM營銷的喜和憂
一 觸發類郵件案例分享 可見,電子郵件已經成為電商最重要的營銷工具之一。最近我們發現,京東 開通了 京東 edm 微博,看來京東對edm也越來越重視了。下面就為大家分享幾封京東的郵件,如有不恰當之處,歡迎各位拍磚!觸發類郵件案例一 邀請客戶評價已購買的產品 郵件主題 京東網上 您還有未評價的商品哦,...
商城商品購買數量增減的完美JS效果
效果如下 以下是html 加入借閱臺 首先看第一條 輸入一定是數字 這很容易想到用keyup事件監測,用正規表示式替換非數字字元 booknum keyup function 這樣就可以保證使用者輸入的一定是數字了,並且我們中間做了校驗,如果使用parseint轉換為整數後值是nan,就讓值為1 但...