sephore增刪改查讼稚,添加分類括儒,SQL注入

1、引入模塊

在py文件中引入pymysql模塊

from pymysql import connect

2锐想、Connection 對象

用于建立與數據庫的連接

創(chuàng)建對象:調用connect()方法

conn=connect(參數列表)

參數host:連接的mysql主機帮寻,如果本機是'localhost'

參數port:連接的mysql主機的端口,默認是3306

參數database:數據庫的名稱sephore

參數user:連接的用戶名root

參數password:連接的密碼

參數charset:通信采用的編碼方式赠摇,一般使用utf8

對象的方法

close()關閉連接

commit()提交

cursor()返回Cursor對象固逗,用于執(zhí)行sql語句并獲得結果

3浅蚪、Cursor對象

用于執(zhí)行sql語句,使用頻度最高的語句為select烫罩、insert惜傲、update、delete

獲取Cursor對象:調用Connection對象的cursor()方法

cs1=conn.cursor()

對象的方法

1.????close()關閉

2.????execute(operation [, parameters ])執(zhí)行語句贝攒,返回受影響的行數盗誊,主要用于執(zhí)行insert、update隘弊、delete語句哈踱,也可以執(zhí)行create、alter梨熙、drop等語句

3.????fetchone()執(zhí)行查詢語句時嚣鄙,獲取查詢結果集的第一個行數據,返回一個元組

4.????fetchall()執(zhí)行查詢時串结,獲取結果集的所有行,一行構成一個元組舅列,再將這些元組裝入一個元組返回

對象的屬性

rowcount只讀屬性肌割,表示最近一次execute()執(zhí)行后受影響的行數

connection獲得當前連接對象

數據查詢

from pymysql import connect

class SEPHORE(object):

def __init__(self):

# 創(chuàng)建Connection連接

self.conn = connect(host='localhost',port=3306,database='sephore',user='root',password='123456',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 temp in 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)

@staticmethod

def ptint_menu():

print('-----絲芙蘭-----')

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

print("2:所有的商品分類")

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

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

def run(self):

while True:

num = self.ptint_menu()

if num == '1':

# 查詢所有商品

self.show_all_items()

elif num == '2':

# 查詢分類

self.show_cates()

elif num == '3':

# 查詢品牌分類

self.show_brands()

else:

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

def main():

#1,創(chuàng)建一個絲芙蘭商城對象

sephore = SEPHORE()

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

sephore.run()

if __name__ == '__main__':

main()

添加一個商品分類

from pymysql import connect

class SEPHORE(object):

def __init__(self):

# 創(chuàng)建Connection連接

self.conn = connect(host='localhost',port=3306,database='sephore',user='root',password='123456',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 temp in self.cursor.fetchall():

print(temp)

def show_all_items(self):

"""顯示所有商品"""

sql = "select * from goods;"

self.execute_sql(sql)

def show_cates(self):

sql = "select * from goods_cates;"

self.execute_sql(sql)

def show_brands(self):

sql = "select * 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()

@staticmethod

def ptint_menu():

print('-----絲芙蘭-----')

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

print("2:所有的商品分類")

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

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

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

def run(self):

while True:

num = self.ptint_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()

else:

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

def main():

#1,創(chuàng)建一個絲芙蘭商城對象

sephore = SEPHORE()

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

sephore.run()

if __name__ == '__main__':

main()

SQL注入

from pymysql import connect

class SEPHORE(object):

def __init__(self):

# 創(chuàng)建Connection連接

self.conn = connect(host='localhost',port=3306,database='sephore',user='root',password='123456',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 temp in self.cursor.fetchall():

print(temp)

def show_all_items(self):

"""顯示所有商品"""

sql = "select * from goods;"

self.execute_sql(sql)

def show_cates(self):

sql = "select * from goods_cates;"

self.execute_sql(sql)

def show_brands(self):

sql = "select * 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? delete_cates(self):

item_name = input("請輸入要刪除的商品分類的名稱")

sql = """delect name from goods_cates (name) values("%s");"""% item_name

self.cursor.execute(sql)

self.conn.commit()

def alter_cates(self):

item_name = input("請輸入要修改的商品分類的名稱")

sql = """alter name from goods_cates (name) values("%s");"""% item_name

self.cursor.execute(sql)

self.conn.commit()

def get_info_by_name(self):

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

# sql = """insert into goods where name= '%s';"""% find_name

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

# self.execute_sql(sql)

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

self.cursor.execute(sql,[find_name]) #防止SQL注入

print(self.cursor.fetchall())

@staticmethod

def ptint_menu():

print('-----絲芙蘭-----')

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

print("2:所有的商品分類")

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

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

print("5:刪除商品分類")

print("6:修改商品分類")

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

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

def run(self):

while True:

num = self.ptint_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 == '5':

# 刪除商品分類

self.delete_cates()

elif num == '6':

# 修改商品分類

self.alter_cates()

elif num == '7':

# 根據名字查詢商品

self.get_info_by_name()

else:

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

def main():

#1,創(chuàng)建一個絲芙蘭商城對象

sephore = SEPHORE()

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

sephore.run()

if __name__ == '__main__':

main()

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市赠橙,隨后出現(xiàn)的幾起案子耽装,更是在濱河造成了極大的恐慌,老刑警劉巖期揪,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掉奄,死亡現(xiàn)場離奇詭異,居然都是意外死亡凤薛,警方通過查閱死者的電腦和手機姓建,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缤苫,“玉大人速兔,你說我怎么就攤上這事』盍幔” “怎么了涣狗?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵谍婉,是天一觀的道長。 經常有香客問我屑柔,道長屡萤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任掸宛,我火速辦了婚禮死陆,結果婚禮上,老公的妹妹穿的比我還像新娘唧瘾。我一直安慰自己措译,他們只是感情好,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布饰序。 她就那樣靜靜地躺著领虹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪求豫。 梳的紋絲不亂的頭發(fā)上塌衰,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機與錄音蝠嘉,去河邊找鬼最疆。 笑死,一個胖子當著我的面吹牛蚤告,可吹牛的內容都是我干的努酸。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼杜恰,長吁一口氣:“原來是場噩夢啊……” “哼获诈!你這毒婦竟也來了?” 一聲冷哼從身側響起心褐,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤舔涎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后逗爹,有當地人在樹林里發(fā)現(xiàn)了一具尸體终抽,經...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年桶至,在試婚紗的時候發(fā)現(xiàn)自己被綠了昼伴。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡镣屹,死狀恐怖圃郊,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情女蜈,我是刑警寧澤持舆,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布色瘩,位于F島的核電站,受9級特大地震影響逸寓,放射性物質發(fā)生泄漏居兆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一竹伸、第九天 我趴在偏房一處隱蔽的房頂上張望泥栖。 院中可真熱鬧,春花似錦勋篓、人聲如沸吧享。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽钢颂。三九已至,卻和暖如春拜银,著一層夾襖步出監(jiān)牢的瞬間殊鞭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工尼桶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留钱豁,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓疯汁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親卵酪。 傳聞我的和親對象是個殘疾皇子幌蚊,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內容