介紹
HappyShop 是一個 Django 開發的第三方包,可以快速集成到任何django項目,以便快速獲得一個簡單的商城功能。
本項目採用django + DRF + vue開發,具備前後端分離基因,擁有完整的多規格商品邏輯,集成支付寶支付,只需要簡單配置即可快速收款!
當然,其他功能還在迭代…
演示站
- 演示地址:HappyShop (lotdoc.cn)
- 開源地址:django-happy-shop: django-happy-shop是python棧採用最新版django框架前後端分離開發的商城模塊,可快速通過pip命令快速集成到任何django項目! (gitee.com)
- 文檔地址:django-happy-shop使用文檔 (lotdoc.cn)
快速開始
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,評論指教!