Python Django實現簡單購物車功能
Django版本:1.11
作業系統:Windows
Python:3.5
歡迎加入學習交流QQ群:657341423
這裡以淘寶為例
這是一個商品的詳情,這裡有2個按鈕功能,一個是立即購買,一個加入購物車,兩者都是生成一個訂單,但兩者實現的方法是不相同的。
我按照這個設計,實現簡單功能。
這裡生成2個App,一個ProductInfo,用於商品詳情,一個ShoppingCar,購物車功能(包括立即購買和加入購物車),最後一個是模版。
網站的整體設定就是這樣
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設計:
models.py設計
這裡的資料表和商品的資料表資料格式大致一致,而且比商品的資料表有所減少部分資料,但我這裡兩個資料表是沒有關聯的。如果要做到淘寶那樣的話,需要對資料庫進行下一步的設計。
views.py設計
MyCar其實就是將資料表的資料出來的。這裡讀取全部,如果對比淘寶那樣,這個資料表還需加入使用者的ID,可以通過使用者登入的時候,用session儲存使用者ID,然後通過使用者的ID進行篩選。
BuyNow就是在商品的詳細頁面,點選馬上搶購的時候,將商品的資訊寫入session,然後再顯示出來。這裡是讀取之前寫入的session。
執行結果:
上圖,當用戶在(APP(ProductInfo)的頁面)點選加入購物車的時候,會寫入App(ShoppingCar)所在的資料表裡面
然後點選我的購物車,會將購物車裡面數據顯示出來。
這裡會出現數據重複,如果做到淘寶那樣,可以優化這個插入資料表的功能,需要加多一欄位(數量),如已存在的就修改數量,不存在就新增資料。
上圖,如果點選馬上搶購,會直接跳到商品的詳細資訊。而且是不寫入資料表的。
上述兩種方式,只要加多一個提交訂單,即可生成一個訂單,這裡又是一個APP,又是一個數據表了。
總結:
大致上電商平臺的購物車功能就是大致這樣設計,細節的設計可以根據具體再修改。