京東查詢、增刪改、添加分類、sql注入

from pymysqlimport connect

class WN(object):

def __init__(self):

self.is_login =False

? ? ? ? self.conn = connect(host='localhost', port=3306, database='wn', user='root', password='root', charset='utf8')

# 獲取cursor對象

? ? ? ? self.cursor =self.conn.cursor()

def __del__(self):

# 關閉cursor對象

? ? ? ? self.cursor.close()

self.conn.close()

def execute_sql(self,sql):

self.cursor.execute(sql)

for tempin self.cursor.fetchall():

print(temp)

def show__all__items(self):

'''顯示所有的商品'''

? ? ? ? sql ="select *from goods;"

? ? ? ? self.execute_sql(sql)

def show_cates(self):

sql ="select name from goods_cates;"

? ? ? ? self.execute_sql(sql)

def show_brands(self):

sql ="select name from goods_brands;"

? ? ? ? self.execute_sql(sql)

def add_cates(self):

item_name =input('請輸入新商品分類的名稱:')

sql ="""insert into goods_cates (name) values("%s");"""%item_name

self.cursor.execute(sql)

self.conn.commit()

def update_brands(self):

id=0

? ? ? ? while True:

try:

id =int(input('輸入要修改的商品分類的id:'))

except Exception as ret:

print('輸入正確的id編號!')

else:

break

? ? ? ? item_name =input('輸入新商品分類的名稱:')

sql ="update goods_brands set name=%s where id=%s"

? ? ? ? self.cursor.execute(sql,[item_name,id])

self.conn.commit()

def update_cates(self):# 修改

? ? ? ? id=0

? ? ? ? while True:

try:

id =int(input('輸入要修改的商品分類的id:'))

except Exception as ret:

print('輸入正確的id編號!')

else:

break

? ? ? ? item_name =input('輸入新商品分類的名稱:')

sql ="update goods_cates set name=%s where id=%s"

? ? ? ? self.cursor.execute(sql,[item_name,id])

self.conn.commit()

def delete_cates(self):# 刪除

? ? ? ? id=0

? ? ? ? while True:

try:

id=input('輸入要刪除的商品分類的id:')

except Exception as ret:

print('輸入正確的ID編號')

else:

break

? ? ? ? isdel =input('你確定要刪除編號為%s的商品分類嗎,按y確認,其他鍵返回主菜單:'%id)

if isdel =='y':

pass

? ? def register(self):# 注冊

? ? ? ? username =input('請輸入用戶名:')

pwd =input('輸入密碼:')

addr =input('請輸入地址:')

tel =input('輸入電話:')

sql ="insert into customers values (0,%s,%s,%s,password(%s));"

? ? ? ? self.cursor.execute(sql,[username,addr,tel,pwd])

self.conn.commit()

print('注冊成功了!')

def login(self):# 登錄

? ? ? ? username =input('輸入用戶名:')

pwd =input('輸入密碼:')

sql ='select id from customers where name=%s and passwd =password(%s);'

? ? ? ? self.cursor.execute(sql,[username,pwd])

self.uid =self.cursor.fetchone()

if self.uid:

self.uid =self.uid[0]

self.is_login =True

? ? ? ? return self.is_login

def create_order(self):

pid =input('輸入商品的編號')

num =input('輸入商品的數量')

sql ="select *from goods where id=%s and is_show=1 and is_saleoff=1;"

? ? ? ? result =self.cursor.execute(sql,[pid])

if result:

sql ="insert into orders values (0,now(),%s);"

? ? ? ? ? ? self.cursor.execute(sql,[self.uid])

sql ="insert into order_detail values (0,%s,%s,%s);"

? ? ? ? ? ? self.cursor.execute(sql,[self.cursor.lastrowid,pid,num])

self.conn.commit()

print('下單成功!')

else:

print('你要購買的商品已經下架')

@staticmethod

? ? def sys_menu():

print('-------商品--------')

print('1.>>>注冊')

print('2.>>>登錄')

print('3.>>>退出')

return input('輸入功能序號')

def get_info_by_name(self):

find_name =input('請輸入你要查詢的商品的名字:')

# sql = """select * from goods where name="%s"; """%find_name

# print('-->%s<--'%sql)

# self.execute_sql(sql)

? ? ? ? sql ="select *from goods where name=%s"

? ? ? ? self.cursor.execute(sql,[])

print(self.cursor.fetchall())

@staticmethod

? ? def print_menu():

print('-------蝸牛--------')

print('1:所有的商品')

print('2:所有商品分類')

print('3:所有商品品牌分類')

print('4:添加商品分類')

print('7:根據名字查詢商品')

return input('請輸入功能對應的序號:')

def run(self):

while True:

num =self.sys_menu()

if num =='1':

self.register()

elif num =='2':

if self.login():

print('登錄成功!')

break

? ? ? ? ? ? ? ? else:

print('用戶名或密碼有誤,請重新輸入。。。。')

if self.is_login:

while True:

num =self.print_menu()

if num =='1':

self.show__all__items()

elif num =='2':

self.show_cates()

elif num =='3':

self.show_brands()

elif num =='4':

self.add_cates()

elif num =='7':

# 根據名字查詢商品

? ? ? ? ? ? ? ? ? ? self.get_info_by_name()

else:

print('輸入有誤,請重新輸入.....')

def main():

#? ?? 1、創建一個商城對象

? ? wn = WN()

#? ?? 2、調用這個對象run方法,讓其運行

? ? wn.run()

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容