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)
- 文档地址: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,评论指教!