dailyfresh-b2c
dailyfresh mall based on b2c model
基於b2c的天天生鮮**
1. 簡介為消費者提供乙個新型的購物環境:
從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 部署架構
4. 主體模組
主要分為四個大模組:
* 使用者模組、
* 商品相關模組、
* 購物車相關模組、
* 訂單相關模組、
5. 資料庫表
* spu是商品資訊聚合的最小單位,是一組可復用、易檢索的標準化資訊的集合,該集合描述了乙個產品的特性。通俗點講,屬性值、特性相同的商品就可以稱為乙個spu。
例如,iphone4就是乙個spu,n97也是乙個spu,這個與商家無關,與顏色、款式、**也無關。
* sku即庫存進出計量的單位, 可以是以件、盒、托盤等為單位,在服裝、鞋類商品中使用最多最普遍。
例如紡織品中乙個sku通常表示:規格、顏色、款式。
6. 功能模組展示
7.1 使用者註冊發啟用郵件時,可能傳送郵件所需的時間較長,客戶端會需要等待,使用者體驗不好。
> 把耗時的任務放到後台非同步執行,此處使用celery任務佇列, 其中使用redis作中介軟體。
7.2 redis儲存使用者歷史瀏覽記錄, 採用list資料結構: history_使用者id: [skuid1,skuid2,skuid3]
7.3 使用redis儲存使用者購物車商品資訊,採用hash資料結構: cart_userid:
7.4 採用分布式檔案系統, 把商品等資訊儲存在fastdfs系統中, nginx+fastdfs配合, 減少伺服器的壓力。
7.5 頁面靜態化: 首頁、商品列表頁、商品詳情頁等使用者共同的頁面, 把頁面靜態化,以減少對資料庫的操作。當後台資料更改時自動重新生成靜態頁。
7.6 頁面資料快取,把頁面使用的資料存放在快取中,當再次使用這些資料時,先從快取中獲取,如獲取不到,再去查詢資料庫,減少資料庫的查詢次數。
7.7 訂單併發
本次主要加深了對整站開發所需的技術棧,並熟悉整個專案開發的流程、進度控制、發現解決問題等過程。
專案已託管在github:
Django之redirect實現原理
又稱為客戶端重定向 該方法通過修改http協議的header部分,對瀏覽器下達重定向指令的,讓瀏覽器對在location中指定的url提出請求,使瀏覽器顯示重定向網頁的內容。該方法可以接受絕對的或相對的urls。如果傳遞到該方法的引數是乙個相對的url,那麼web container在將它傳送到客戶...
Python隨筆之Django安裝
django是基於python的乙個非常優秀的web框架。在windows下安裝也非常的方便。import django django.version 第三步,將python及django的安裝路徑加入到windows的環境變數path中 第四步,執行python目錄下scripts下的django...
python學習之 Django初探
django的安裝 在官網上可以看到,安裝有2種方法,一種是直接pip,還有一種是git 我在我的windows上安裝django,已經配置好了script的路徑 直接esay install django django被安裝在 c python27 lib site packages 建立第乙個工...