dailyfresh-B2C
dailyfresh mall based on B2C model
基于B2C的天天生鮮商城
專案托管地址:https://github.com/Ylisen/dailyfresh-B2C

1. 簡介
B2C(Business-to-Customer), 企業對個人的一種商業模式,簡稱"商對客". 商對客是電子商務的一種模式,這種電子商務一般以網路零售業為主,主要借助于互聯網開展在線銷售活動, B2C即企業通過互聯網為消費者提供一個新型的購物環境——網上商店,消費者通過網路在網上購物、網上支付等消費行為,
為消費者提供一個新型的購物環境:
從0開始,立項、構建、開發到部署, 搭建一個天天生鮮商場
2. 技術堆疊
- 語言:Python3.* (Django)
- 資料庫: MySql、 redis
- 任務佇列(異步處理): celery(django-celery)
- 分布式檔案存盤: FastDFS
- 搜索引擎(商品檢索): haystack(django-haystack)、whoosh、二次開發
- web服務器配置: Nginx+ uwsgi
- 開發環境: PyCharm、Linux、vim
3. 技術架構
3.1 開發架構
采用BS結構, 即Browser/Server(瀏覽器/服務器)結構,構建一個web的網站商城系統, 其架構邏輯: 
3.2 部署架構
Nginx+uwsgi 
4. 主體模塊
主要分為四個大模塊:
* 用戶模塊、
* 商品相關模塊、
* 購物車相關模塊、
* 訂單相關模塊、
5. 資料庫表

* SPU是商品資訊聚合的最小單位,是一組可復用、易檢索的標準化資訊的集合,該集合描述了一個產品的特性,通俗點講,屬性值、特性相同的商品就可以稱為一個SPU,
例如,iphone4就是一個SPU,N97也是一個SPU,這個與商家無關,與顏色、款式、套餐也無關,
* SKU即庫存進出計量的單位, 可以是以件、盒、托盤等為單位,在服裝、鞋類商品中使用最多最普遍,
例如紡織品中一個SKU通常表示:規格、顏色、款式,
6. 功能模塊展示
[點擊查看--多圖預警](Readme/show.md)
7. 功能與性能優化
7.1 用戶注冊發激活郵件時,可能發送郵件所需的時間較長,客戶端會需要等待,用戶體驗不好,
> 把耗時的任務放到后臺異步執行,此處使用celery任務佇列, 其中使用redis作中間件,
7.2 redis存盤用戶歷史瀏覽記錄, 采用list資料結構: History_用戶id: [skuid1,skuid2,skuid3]
7.3 使用redis存盤用戶購物車商品資訊,采用hash資料結構: cart_userid: {'sku_id1': num, 'sku_id2': num}
7.4 采用分布式檔案系統, 把商品圖片等資訊存盤在FastDFS系統中, Nginx+FastDFS配合, 減少服務器的壓力,
7.5 頁面靜態化: 首頁、商品串列頁、商品詳情頁等用戶共同的頁面, 把頁面靜態化,以減少對資料庫的操作,當后臺資料更改時自動重新生成靜態頁,
7.6 頁面資料快取,把頁面使用的資料存放在快取中,當再次使用這些資料時,先從快取中獲取,如獲取不到,再去查詢資料庫,減少資料庫的查詢次數,
7.7 訂單并發
8. 相關鏈接
* Libfastcommon: 安裝FastDFS之前要先安裝它的依賴庫libfastcommon
(https://github.com/happyfish100/libfastcommon/releases)
* FastDFS
(https://github.com/happyfish100/FastDFS)
* Nginx
(https://nginx.org/download/)
* fastdfs-nginx-module
(https://github.com/happyfish100/fastdfs-nginx-module/releases)
* 支付寶api
(https://open.alipay.com/platform/home.htm)

本次主要加深了對整站開發所需的技術堆疊,并熟悉整個專案開發的流程、進度控制、發現解決問題等程序,
專案已托管在github:https://github.com/Ylisen/dailyfresh-B2C
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/213777.html
標籤:其他
上一篇:Ice簡介+Qt代碼示例
