摘要:上一篇文章實(shí)戰(zhàn)第二章使用構(gòu)建應(yīng)用第一節(jié)登錄和緩存下一篇文章實(shí)戰(zhàn)第二章使用構(gòu)建應(yīng)用第三節(jié)網(wǎng)頁(yè)緩存網(wǎng)景公司在世紀(jì)年代中期最先在網(wǎng)絡(luò)中使用了,這些最終變成了我們現(xiàn)在使用的。從購(gòu)物車(chē)?yán)锩嬉瞥付ㄉ唐穼⒅付ǖ纳唐诽砑拥劫?gòu)物車(chē)
上一篇文章: Python--Redis實(shí)戰(zhàn):第二章:使用Redis構(gòu)建Web應(yīng)用:第一節(jié):登錄和cookie緩存
下一篇文章:Python--Redis實(shí)戰(zhàn):第二章:使用Redis構(gòu)建Web應(yīng)用:第三節(jié):網(wǎng)頁(yè)緩存
網(wǎng)景(Netscape)公司在20世紀(jì)90年代中期最先在網(wǎng)絡(luò)中使用了cookie,這些cookie最終變成了我們現(xiàn)在使用的cookie。cookie最初的意圖是在于為網(wǎng)絡(luò)銷(xiāo)售商提供一種購(gòu)物車(chē),讓用戶(hù)可以收集他們想要購(gòu)買(mǎi)的商品。
使用cookie實(shí)現(xiàn)購(gòu)物車(chē):也就是將整個(gè)購(gòu)物車(chē)都存儲(chǔ)到cookie里面的做法非常常見(jiàn),這種做法的一大優(yōu)點(diǎn)是無(wú)須對(duì)數(shù)據(jù)庫(kù)進(jìn)行寫(xiě)入就可以實(shí)現(xiàn)購(gòu)物車(chē)功能,而缺點(diǎn)則是程序需要重新解析和驗(yàn)證(validata)cookie,確保cookie的格式正確,并且包含的商品都是真正可購(gòu)買(mǎi)的商品。cookie購(gòu)物車(chē)還有一個(gè)缺點(diǎn):因?yàn)闉g覽器每次發(fā)送請(qǐng)求都會(huì)連cookie一起發(fā)送,所以如果購(gòu)物車(chē)cookie的體積比較大,那么請(qǐng)求發(fā)送和處理的速度可能會(huì)有所降低。
因?yàn)槲覀冊(cè)诤灻呀?jīng)使用了Redis實(shí)現(xiàn)了會(huì)話(huà)cookie和記錄用戶(hù)最近瀏覽過(guò)的商品這兩個(gè)特性,所以我們決定將購(gòu)物車(chē)的信息也存儲(chǔ)到Redis里面,并且使用與會(huì)話(huà)cookie相同的cookieID來(lái)引用購(gòu)物車(chē)。
購(gòu)物車(chē)的定義非常簡(jiǎn)單:每個(gè)用戶(hù)的購(gòu)物車(chē)都是一個(gè)散列,這個(gè)散列存儲(chǔ)了商品ID與商品訂購(gòu)數(shù)量之間的映射。對(duì)商品數(shù)量進(jìn)行驗(yàn)證的工作有web應(yīng)用程序負(fù)責(zé),我們要做的則是在商品的訂購(gòu)數(shù)量出現(xiàn)變化時(shí),對(duì)購(gòu)物車(chē)進(jìn)行更新:如果用戶(hù)訂購(gòu)某件商品的數(shù)量大于0,那么程序會(huì)將這件商品的ID以及用戶(hù)訂購(gòu)該商品的數(shù)量添加到散列里面,如果用戶(hù)購(gòu)買(mǎi)的商品以及存在于散列里面,那么新的訂購(gòu)數(shù)量會(huì)覆蓋已有的訂購(gòu)數(shù)量;相反的,如果用戶(hù)訂購(gòu)某件商品的數(shù)量不大于0,那么程序?qū)纳⒘欣锩嬉瞥摋l目。
def add_to_cart(conn,session,item,count): if count<=0: #從購(gòu)物車(chē)?yán)锩嬉瞥付ㄉ唐? conn.hrem("cart:"+session,item) else: #將指定的商品添加到購(gòu)物車(chē)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/42565.html
摘要:研究表明,減少用戶(hù)等待頁(yè)面載入的時(shí)間,可以增加用戶(hù)使用網(wǎng)站的欲望,并改善用戶(hù)對(duì)網(wǎng)站的印象。上一篇文章實(shí)戰(zhàn)第二章使用構(gòu)建應(yīng)用第二節(jié)使用實(shí)現(xiàn)購(gòu)物車(chē)下一篇文章實(shí)戰(zhàn)第二章使用構(gòu)建應(yīng)用第四節(jié)數(shù)據(jù)行緩存 上一篇文章: Python--Redis實(shí)戰(zhàn):第二章:使用Redis構(gòu)建Web應(yīng)用:第二節(jié):使用Redis實(shí)現(xiàn)購(gòu)物車(chē)下一篇文章:Python--Redis實(shí)戰(zhàn):第二章:使用Redis構(gòu)建Web應(yīng)用...
摘要:需要在服務(wù)中存儲(chǔ)更多信息,如果使用的是關(guān)系數(shù)據(jù)庫(kù),那么載入和存儲(chǔ)的的代價(jià)可能會(huì)很高。這次我們使用令牌來(lái)引用關(guān)系數(shù)據(jù)庫(kù)表中負(fù)責(zé)存儲(chǔ)用戶(hù)登錄信息的條目。而我們要做的就是適用重新實(shí)現(xiàn)登錄功能,取代由關(guān)系數(shù)據(jù)庫(kù)實(shí)現(xiàn)的登錄功能。 上一篇文章:Python--Redis實(shí)戰(zhàn):第一章:初識(shí)Redis:第三節(jié):你好Redis-文章投票試煉下一篇文章:Python--Redis實(shí)戰(zhàn):第二章:使用Redi...
閱讀 2845·2023-04-25 18:06
閱讀 2648·2021-11-22 09:34
閱讀 1728·2021-11-08 13:16
閱讀 1347·2021-09-24 09:47
閱讀 3078·2019-08-30 15:44
閱讀 2805·2019-08-29 17:24
閱讀 2614·2019-08-23 18:37
閱讀 2469·2019-08-23 16:55