python之Django實現商城從0到1

2022-03-07 02:31:23 字數 2103 閱讀 9208

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 建立第乙個工...