Python Django實現簡單購物車功能

HuangZhang_123發表於2017-06-26

Django版本:1.11
作業系統:Windows
Python:3.5
歡迎加入學習交流QQ群:657341423


這裡以淘寶為例
這裡寫圖片描述
這是一個商品的詳情,這裡有2個按鈕功能,一個是立即購買,一個加入購物車,兩者都是生成一個訂單,但兩者實現的方法是不相同的。

我按照這個設計,實現簡單功能。
這裡寫圖片描述
這裡生成2個App,一個ProductInfo,用於商品詳情,一個ShoppingCar,購物車功能(包括立即購買和加入購物車),最後一個是模版。

網站的setting.py
這裡寫圖片描述
這裡寫圖片描述

網站Url.py
這裡寫圖片描述
App(ProductInfo和ShoppingCar)分別有各自的url.py

網站的整體設定就是這樣


ProductInfo設計:
url.py
這裡寫圖片描述
這裡用商品的ID作為URL的其中一部分

models.py設計
這裡寫圖片描述

Form.py設計
這裡寫圖片描述

views.py設計
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡有2個def,一個是ProductList,一個是ProductDetails。
ProductList這裡不做具體設計,這部分是用於將所有商品以列表的形式表現出來。後續可以擴充套件部分。
ProductDetails是一個商品的詳細資訊,和上面淘寶的截圖一樣。

Html部分:
這裡寫圖片描述

執行結果:
這裡寫圖片描述

根據url的http://127.0.0.1:8000/ProductList/A003/ 裡面的A003更改,會顯示不同商品。如果做了部分修改,變成A003M,這裡只是做一些標記而已。(這裡增加了新增產品和修改資訊只是方面資料錄入和測試。在邏輯設計上比較簡單。)
這裡寫圖片描述


ShoppingCar設計:
url.py
這裡寫圖片描述

models.py設計
這裡寫圖片描述
這裡的資料表和商品的資料表資料格式大致一致,而且比商品的資料表有所減少部分資料,但我這裡兩個資料表是沒有關聯的。如果要做到淘寶那樣的話,需要對資料庫進行下一步的設計。

views.py設計
這裡寫圖片描述
MyCar其實就是將資料表的資料出來的。這裡讀取全部,如果對比淘寶那樣,這個資料表還需加入使用者的ID,可以通過使用者登入的時候,用session儲存使用者ID,然後通過使用者的ID進行篩選。
BuyNow就是在商品的詳細頁面,點選馬上搶購的時候,將商品的資訊寫入session,然後再顯示出來。這裡是讀取之前寫入的session。

執行結果:
這裡寫圖片描述
上圖,當使用者在(APP(ProductInfo)的頁面)點選加入購物車的時候,會寫入App(ShoppingCar)所在的資料表裡面
然後點選我的購物車,會將購物車裡面資料顯示出來。
這裡會出現資料重複,如果做到淘寶那樣,可以優化這個插入資料表的功能,需要加多一欄位(數量),如已存在的就修改數量,不存在就新增資料。

這裡寫圖片描述
上圖,如果點選馬上搶購,會直接跳到商品的詳細資訊。而且是不寫入資料表的。
上述兩種方式,只要加多一個提交訂單,即可生成一個訂單,這裡又是一個APP,又是一個資料表了。


總結:
大致上電商平臺的購物車功能就是大致這樣設計,細節的設計可以根據具體再修改。

程式碼下載:請點選

相關文章