在Django框架下,用redis實現購物車功能

2021-08-13 08:00:14 字數 839 閱讀 5259

先介紹一下本文中需要用到的資料庫模型類

goodssku,這個主要用於儲存商品,在這個模型類裡有price屬性、name屬性等。

最終我們要實現的頁面效果是:

購買商品頁面:

購物車詳情頁面:

總的思路是,因為購物車屬於頻繁被操作的物件,所以我們與之儲存在資料庫裡,不如儲存在記憶體裡。所以我們選擇redis。另外,購物車要顯示使用者購買商品的條目數,這個屬於區域性重新整理,不能使用者每次新增購物車都重新整理整個頁面,所以要用到ajax。

在資料傳輸方面,需要我們反覆在前端與後端呼叫的資料是商品id(有了id,商品的其他資訊就都能從資料庫里查到。),購買的數量。

第一步,先來設計redis的資料結構,因為每個使用者都要有一條資料,所以我們選擇hash。具體的內容是cart_使用者id:條目數可以用hlen來獲取。

第二步,用ajax實現前端與後台的溝通。

前端:$(funcition()

csrf = $('input[name="csrfmiddlewaretoken"]').val()

params =

$.post('/cart/add', params, function (data) )

第四步,實現購物車詳情頁面。其實就是把相應的資料傳過去。

做個總結:做購物車,關鍵就是要清楚前端需要哪些資料,後端需要哪些資料,如何定製資料庫裡的資料結構。想清楚了,剩下的就是熟能生巧。

Django框架下連線Mysql資料庫

1 找到settings.py檔案 2 新增如下 databases 3 在上面的基礎上,下面介紹兩種連線資料庫的具體方法 1 使用models.py連線 第一步 根據已存在的資料庫生成models.py檔案。進入cmd命令視窗,然後cd到你的專案中manage.py檔案所在目錄下,如 然後輸入py...

BOW模型在ANN框架下的解釋

假設有兩幅影象a和b,a有一系列描述子 例如sift 組成,而b由組成。為了計算這兩幅圖之間的相似度,最直接的方法是採用一下的voting system 其中f是乙個匹配函式,反映了xi與yj之間是否匹配。對於乙個 search和k nn的匹配方式下,f分別定義為 按 1 式將所有的i和j累加起來,...

在iframe框架下實現全域性彈框

公司使用的是iframe的框架來寫的後台,即包含top,left,right,bottom,想要實現有訊息時出現彈框,該彈框在所有的頁面內都可以顯示,現有實現方式如下 原先的布局為在index頁面設定的iframe等引數 很抱歉,您使用的瀏覽器不支援框架功能,請轉用新的瀏覽器。現在為了實現彈出框在全...