django-happy-shop一個可以快速整合到任何django專案的商城模組
介紹
HappyShop 是一個 Django 開發的第三方包,可以快速整合到任何django專案,以便快速獲得一個簡單的商城功能。
本專案採用django + DRF + vue開發,具備前後端分離基因,擁有完整的多規格商品邏輯,整合支付寶支付,只需要簡單配置即可快速收款!
當然,其他功能還在迭代…
演示站
- 演示地址:HappyShop (lotdoc.cn)
- 開源地址:django-happy-shop: django-happy-shop是python棧採用最新版django框架前後端分離開發的商城模組,可快速通過pip命令快速整合到任何django專案! (gitee.com)
- 文件地址:
快速開始
pip命令快速安裝
安裝方法與python其他包的方法一致,一條命令即可快速安裝!
pip install django-happy-shop
使用說明
- 將 "happy_shop" 新增到您的 INSTALLED_APPS 設定中,以及專案需要的其他幾個依賴,如下所示:
INSTALLED_APPS = [ ... 'happy_shop', # happy_shop主程式 'rest_framework', # DRF 'corsheaders', # 處理跨域的包 'crispy_forms', # 可瀏覽API的form包,便於除錯 ]
其中引入happy_shop
與 rest_framework
兩個模組是必須的,因為改程式依賴於他們兩個,下邊兩個模組是為了方便除錯而引入的,一個是解決跨域問題而引入,這個視自己的使用情況決定,當前程式可以不引入,另外一個是為了配合django-filter模組使用,如果不開發除錯可不引入!
- 在專案 urls.py 中包含 happy_shop 的 URLconf,如下所示
urlpatterns = [ ... # 這裡url開頭的happy暫時請不要自定義,可能會影響某些介面的運作 path('happy/', include('happy_shop.urls')), ]
如果需要檢視可瀏覽的API文件及頁面還需要加入以下兩個url,這不是必須的,根據自己使用情況而定!
from rest_framework.documentation import include_docs_urls
urlpatterns = [
...
# 這裡url開頭的happy暫時請不要自定義,可能會影響某些介面的運作
path('happy/', include('happy_shop.urls')),
# 需要檢視drf的介面文件請配置
path('docs/', include_docs_urls(title='HappyShop API')),
# 需要DRF的可瀏覽API能力請配置
path('api-auth/', include('rest_framework.urls')),
]
- 執行django的
migrate
命令建立模型資料
python manage.py migrate
- 執行django的runserver命令,啟動開發伺服器
python manage.py runserver
-
訪問http://127.0.0.1:8000/happy/ 即可檢視商城頁面!
-
當前商城系統後臺依賴django預設的admin,請訪問
http://127.0.0.1:8000/admin/
進入後臺進行資料管理,請自行建立管理員賬號密碼及無比開啟django管理後端【django預設後端】!
python manage.py createsuperuser # 建立超管
支付配置
注意:如果你只是暫時檢視演示,不需要收款,到此就先告一段落!
配置收款需要在專案的settings.py檔案中額外引入相關配置,記住支付寶的相關公鑰和私鑰都是需要配置路徑檔案,這裡一一定要配置正確,否則會影響程式執行,這一塊後期版本可能會優化!
配置如下:
HAPPY_SHOP = {
'ALIPAY':{
'APPID': appid
'RETURN_URL': 'http://127.0.0.1:8000/happy/api/alipay/',
'NOTIFY_URL': 'http://127.0.0.1:8000/happy/api/alipay/',
'DEBUG': DEBUG,
'PRIVATE_KEY':BASE_DIR / 'app_private_key.pem', # 應用私鑰
'PUBLIC_KEY':BASE_DIR / 'alipay_public_key.pem', # 支付寶公鑰,不是應用公鑰
},
}
私鑰與公鑰一定要配置正確,否則回撥無法驗證成功,訂單狀態無法修改! 部署時一定要關閉django的DEBUG模式,否則支付地址跳轉為沙箱地址,不能正確收款!
其他
其他相關模組的配置,請參考有關模組的文件,感謝一下幾個模組的作者!
- Home - Django REST framework (django-rest-framework.org)
- django-cors-headers · PyPI
- django-filter — django-filter 2.4.0 documentation
- alipay/README.zh-hans.md at master · fzlee/alipay (github.com)
歡迎大家start,評論指教!