Leaf - 开源微信商城系统框架

Leaf 旨在实现一个对普通用户易用、对开发者友好的 轻型 开源 CMS 框架;Leaf 基于 Python3.5+ 构建,后端使用 Flask 作为基础框架、mongoengine 进行数据库建模。

我们希望能减少普通用户搭建微信商城的成本,同时为有开发能力的朋友提供更多样化的功能。

Leaf 当前的开发仍在进行当中,最新的代码变动请参考 dev 分支

安装及使用

安装

您可以在此直接下载我们最新版本的源代码进行安装

请注意,在正式版本发布之前,在代码分支 dev, beta 的代码都不可用于生产环境

将要支持:pip install wxleaf - 此功能待稳定版本产出后增加

使用

import leaf

import config

init = leaf.Init()

init.kernel()

# 可选项 - 模块请根据自己需要加载

# 请注意:非稳定版本的模块可能会有变动

# 关于模块之间的相互依赖,请参阅文档

init.logging(config.logging)

init.server()

init.database(config.database)

init.plugins(config.plugins)

init.weixin(config.weixin)

init.wxpay(config.wxpay)

# 运行服务器

leaf.modules.server.run()

示例配置文件请参考 config.py

特性介绍

For Users

Leaf 希望能够给没有开发能力的普通用户提供一个基础的、易于使用和管理的微信商城系统。 如果您是没有开发经验的普通用户,Leaf 可以提供给您:

微信公众平台的接口使用能力 即使您没有开发经验,也可以在我们的可视化后台中轻松地编辑多媒体文章、设置群发消息、管理用户/组、设置自动回复等等。

主流支付接口的使用能力 如果您有微信支付及支付宝支付等主流支付接口的使用权限,您可以在我们的后台中轻松配置支付方式,即时应用在您的交易当中。

完善的用户/组/权限管理系统 Leaf 实现了基于角色的用户权限控制,通过在可视化后台中对用户的角色进行编辑,您可以轻松地配置多个用户组以分配工作 —— 管理员、编辑、库存管理员、甚至普通用户都可以进行分组。

产品/库存/订单管理 Leaf 中集成了产品、商品库存、订单管理的功能,您可以轻松地管理 SKU/SPU 以及订单等信息。

插件扩展能力 您可以在我们的项目网站上寻找合适您需求的插件。 通过简单的单击按钮,您就可以启用或者禁用这些扩展,插件也可以使用上述的能力 —— 您可以使用插件设置定时任务,来进行微信推送、也可以使用插件来扩展商城功能,设置促销等等...

For Developers

如果您有开发能力,Leaf 则能带给您更多可能,通过简单的二次开发,您可以使用到她的更多高级功能,下面是您可能感兴趣的部分:

功能特性

任务计划支持 不需要第三方的组件,您可以在开发过程中调用 leaf.core.schedule 模块,她可以帮助您实现 轻量级 的任务计划调度。

事件机制 您可以在代码的任何地方创建一个事件实例,通过 events.hook 方法可以将您的动作挂载到事件上,当事件发生时您的动作将会自动运行。

日志与错误系统 Leaf 基于 logging 包实现了较为完善的日志系统,同时定义的异常基类规范了系统中的异常使用。您只需要在您的代码中继承 leaf.core.Error 类,就可以在日志、API网关中得到详细的错误栈信息。

权限控制 正如上面在介绍所说,Leaf 实现了基于用户角色的权限控制,您也可以像系统应用一样定义自己的接入点,并通过简单的装饰器控制。

插件系统 插件系统是 Leaf 扩展性的重要保证。在 Leaf 中您可以:

热插拔 地管理插件,代码的更改变动可以仅通过一次插件重入得到部署;

插件可以像在Flask的应用中设置路由一样,通过简单的装饰器控制视图路径、权限、访问IP等等

插件可以调用系统中其余的资源(包括事件调度、日志、微信能力、数据库,甚至是其他插件的资源)

开发特性

关于注释 我们深知没有注释的代码等于天书这个道理,为了方便您的二次开发,Leaf 从核心模块到视图函数都有详细的注释。

关于文档 对于一些重要的系统功能,Leaf 会编写专门的文档进行说明 —— 例如如何开始您的插件开发,必要的地方还会配有插图,用于方便您的理解。

类型提示 Python 从 3.5 版本之后支持了类型提示 type hinting,而我们则尽可能的在代码的各个部分使用这项全新功能,配合 Visual Studio 等 IDE,帮助您更轻松的开发。

代码风格 Leaf 在开发过程我们尽可能的维持一致的代码风格,并且设置 commit-Hook 使用 PyLint 进行代码评分 —— 带目前为止,Leaf 获得的评分在 9分 以上,我们知道评分不能代表一切,但是仍希望能够做的更好。

代码示例

古人说: 纸上得来终觉浅,绝知此事要躬行。

我们会编写一些示例代码助于开发者的理解。 例如您可以在 Leaf 的任意版本中找到示例插件的代码,相信会更有助您的二次开发。

Other

Wanted

Leaf 仍在开发当中,仍有很多不完美的地方,希望大家能够在 Issue 中提出,帮助她变得更好。

Leaf 到现在还没有一个合适的 Logo, 希望各位能够帮助

Leaf 的后端工作已经接近完成,现在需要前端/美工小伙伴们的支持,将它变成一个好看的全栈项目。

Todo

完善 JWT Token 的鉴权流程,实现 api.wraps.require 装饰器 - 一周内 (已完成)

完成用户/组/权限/访问点相关的 CRUD 以及视图函数 - 近期

完成 SKU/SPU 的 CRUD 以及视图函数 - 近期

完成订单模块的 CRUD 以及视图函数 - 近期

完善微信公众平台的 API 支持 - 两个月内

完成微信支付相关错误码收集 - 两个月内

编写给前端同学的 API 文档 - 三个月内

编写单元测试 - 三个月内

编写给后端同学二次开发的文档 - 三个月内

架设属于 Leaf 自己的官网、插件市场 - 有生之年

To be continued...

Contributors

祝您使用愉快 ;)

python开源商城_Leaf - 一个开发友好、功能完备的开源微信商城框架相关推荐

  1. python微信公众号开发音乐功能_python利用微信公众号实现报警功能

    python利用微信公众号实现报警功能 发布时间:2020-09-23 09:54:05 来源:脚本之家 阅读:84 作者:Python火火 微信公众号共有三种,服务号.订阅号.企业号.它们在获取Ac ...

  2. 功能强大的微信商城系统,欢迎体验

    1.快速创建微信商城.一杯茶的时间创建您的微信商城. 2.丰富的界面.简洁美观的界面,美轮美奂.   3.功能强大的系统.商品,订单,微信等几十种功能,全面覆盖. 4.多种屏幕预览.支持多种型号手机, ...

  3. python导入siri_python实现一个简洁siri功能

    这篇文章主要介绍了关于python利用不到一百行代码实现了一个小siri的相关资料,文中介绍的很详细,对大家具有一定的参考借鉴价值,需要的朋友们下面来一起看看吧. 前言 如果想要容易理解核心的特征计算 ...

  4. 商城app应用开发的功能

    1.产品功能:商品展示.在线交易.在线支付.货到付款.商品评论.商品分享: 2.店铺功能:店铺信息展示.一键咨询.店铺自定义图标.店铺自定义图片.店铺动态公告.店铺地址导航: 3.会员管理:APP专属 ...

  5. 从0上线一个简单提醒功能的企业微信机器人bot(python3.6+腾讯云部署+cron触发)

    1.右键群,点击添加机器人 2.查看机器人资料,可以看到一个Webhook地址,这个地址之后有大用处 3.前往腾讯云,注册好账号,然后进入serverless服务中,地址: https://conso ...

  6. 道可云:微信公众号开发、微信商城搭建全新教程

    移动互联网的市场需求量越来越大,仅仅2年来,微商就不是一般意义的火爆,但微商的销售之路也不好走,各种被爆出卖假货等新闻层出不穷,只有那些真正有实力的微信商城才能胜出这场微商混战. 微信商城是随着微信平 ...

  7. newbee-mall 开源商城新计划:秒杀功能、优惠券、对接支付宝

    新项目是 newbee-mall 的升级版本,暂时就叫它 newbee-mall-plus 吧,第一阶段会开发秒杀功能.优惠券.对接支付宝这些功能,也会慢慢加入 Redis. Elastic Sear ...

  8. 夏日葵电商:开发一个微信商城系统多少钱

    在微信大热的今天,微信商城也是马不停蹄加速发展,对于广大商家来说,这无疑就是一个经济主导地位,只要你定好格局,瞄准适合自身发展的经济市场,然后开发一个符合用户所需的微信商城系统,加以一定的营销策略就可 ...

  9. G4Studio行业应用二次快速开发平台简介 支持开源软件

    1.1.G4Studio概述      G4Studio行业应用二次快速开发平台基于JavaEE技术体系,面向中小软件企业.以"标准功能可复用.通用模块可配置.行业需求快速开发.异构系统无缝 ...

最新文章

  1. python 英文字符频率统计 采用降序方式输出_Python读取英文文件并记录每个单词出现次数后降序输出示例...
  2. 十二、进程的同步与互斥
  3. 《HTML 5与CSS 3 权威指南(第3版·上册)》——3.2 新增的非主体结构元素
  4. java 原生sql排序 gbk_04-SQLServer的排序规则(字符集编码)
  5. Linux服务器文件描述符最大值修改
  6. mybatis中$和#的区别
  7. TortoiseSVN 菜单详解
  8. php输出PDF的文件流_怎么用PHP在HTML中生成PDF文件
  9. FTP自动上传日期命名文件
  10. 安卓应用安全指南 5.4.2 通过 HTTPS 的通信 规则书
  11. 傅里叶变换音频可视化_H5录音音频可视化-实时波形频谱绘制、频率直方图
  12. Spark SQL 用户自定义函数UDF、用户自定义聚合函数UDAF 教程(Java踩坑教学版)
  13. OpenDRIVE工具介绍及地址
  14. 格兰杰因果检验_R实现
  15. c语言网页制作,C语言写网页
  16. 经典~吸引力法则:你相信什么,就会吸引什么,获得什么
  17. Java *1.11(人口估算)美国人口调查局基于以下假设进行人口估算:
  18. MatalbSimulink Control Tutorials笔记4-根轨迹设计控制器
  19. iOS 调用系统铃声及震动
  20. 【简单入门】ChatGPT prompt engineering (中文版)笔记 |吴恩达ChatGPT 提示工程

热门文章

  1. 禁止缩放safari浏览器--阻止双击放大--阻止双指掐捏放大-
  2. 在CentOS 6.3 64bit上安装ActiveMQ 5.15.9实录
  3. 在Ubuntu 14.04.3 64bit上安装照片编辑软件Fotoxx 15.10
  4. Linux地址映射--线性映射与非线性映射
  5. python pdb 基础调试
  6. pip install lxml失败原因
  7. Mybatis学习记录-使用问题总结之一DISTINCT
  8. 微软在.NET官网上线.NET 架构指南频道
  9. Javascript中二进制数据处理方法
  10. 【C++】多线程与原子操作和无锁编程【五】