SanicCRUD-vueSanic+前端MVVM,新一代Python高性能全栈开发实践背景本项目将使用Sanic+Vue2+Webpack2用最简单的CRUD逻辑展示新一代基于Python的高性能全栈开发实践。为什么是山尼克?很多人可能会有疑问,为什么它不是Flask、Django等著名框架。Sanic本身和Flask很像,它的出现,不仅大大改善了过去WSGI时代性能低下的通病,还配合了uvloop作为核心引擎,使得Sanic单机并发甚至可以媲美Golang很多时候,也意味着Python在Web领域进入了一个新的未来。那么什么是uvloop?简单来说,Python3.4之后最高效、最简单的协程并发库就是asyncio,asyncio的出现只是为了提供更方便的异步编程和互操作接口。底层使用了比较传统的事件循环,uvloop在重新定制asyncio的基础上引入了libuv。其性能不仅超越了之前的gevent、tornado等Python异步框架,而且以2倍以上的性能领先于node.js。它与Flask非常相似吗?为什么是MVVM?在继续之前,我也想和大家一起回顾一下Web开发的简史:第一阶段:网页三剑客,通过原生javascript直接操作Dom树;第二阶段:JQuery的诞生,以MVC为代表的前端Backbone.js,让我们可以优雅简单的操作Dom树;第三阶段:后端架构升级为MVC,前后端分工更加明确,前端工程化和ECMAScript规范开始出现;第四阶段:后前端架构进入微服务时代。前端架构不仅升级为MVVM,ES6已经成为当前的事实标准;MVVM有许多高级特性:低开销、易维护和可重用为什么选择Vue.jsVue.js是目前MVVM设计模式中最流行的前端框架之一。除了出色的性能,它比ReactQuantitative更轻巧,更易于使用。通过Vue中的“单文件组件”特性,更灵活的组件定义不仅让代码结构更加清晰,而且可以随意与其他任何组件组合,使其复用性更强。什么是网页包?Webpack为前端工程自动化提供了一套完整的解决方案。什么是小便?以高性能的Sanic为基石,可能还不够。后端性能最大的瓶颈在于数据库,所以要选择合适的。ORM变得极其重要。目前python主流的ORM有Django-ORM、SQLAlchemy等,但是为了配合Sanic这种性能优秀的框架,我更喜欢peewee,更轻量,方便二次封装,也更友好。支持异步。Demo是以一个简单的“上海人事信息查询系统”为例的项目结构||——测试//单元测试||——sanic_crudvue//主项目||||——config//后台基本配置||||——crud//后台APP||||——前端|||__build//webpack配置文件|||__dist//编译后的目标目录|||__src//前端源代码||||||||__components//本项目的各种核心组件||||||||__App.vue//主页||||||||__eventBus.js//中央消息处理用于'非父子组件'通信,下版本将使用vuex||||||||__main.js//webpack入口(v0.1)Sanic(backend)的功能如何打开一个基于Sanic的工程项目,通过在Sanic中建立一个RestFul-API,通过蓝图组织基本的MVC模式并实现一个基本的CRUD逻辑来处理CORS(跨域资源共享)并解决Sanic中的“飞行前”请求问题很简单。对peewee进行二次包装。ORM演示。在Sanic中执行单元测试。添加API接口文档。使用peewee和Sanic实现RestFul-API分页VueJS&webpack(Frontend)遵循ECMAScript6规范如何在Vue中使用'单文件组件'进行开发和编码演示'非父子组件'如何进行简单通信以及'父子组件'之间如何传输数据如何与后端数据交互优雅的在vue中引入第三方JS库格式化时间分页,实现可复用的组件任何你认为合适的组件,都可以在你的任何一个项目中复用,避免重新造轮子如何通过webpack2配置自动搭建前端环境(包括如何配置vue2、处理静态文件、搭建不同环境等)本项目主要技术栈为python3sqlite(不推荐,仅方便举例)vueJS2.xwebpack2.xelementuiaxios准备请安装Python3.5、3.6或更高版本安装nodejs/npmclone仓库gitclonehttps://github.com/boylegu/Sa...cdSanicCRUD-vueinstallbuildbackendenvironmentcdSanicCRUD-vuemakeinstallbuild前端环境cdsanic_crudvue/frontendnpminstall使用说明运行后端服务makedev运行前端服务cdsanic_crudvue/frontendnpmrundev运行单元测试cdSanicCRUD-vuemaketest也可以运行cdsanic_crudvue/frontend;npmrunbuildin生产环境编译并结合Nginx的未来规划,本项目可作为工作参考、学习或教学演示。之后会以版本的形式,即每个版本都会增加不同的功能演示项,不定期发布更新。已经规划了以下功能其中:用户认证引入更高级的vuex组件通信机制演示vue-route的使用docker部署环境增加对yarn的支持......项目地址:https://github.com/boylegu/萨。..我最后的想法▄▄▄▄▄???██████▄▄▄_________________________________▄▄▄▄▄█████████▄/\????█████▌??▄??█|得快点!|??█████▄▄?██████▄██|█?|/???▄??███?▄▄▄▄▄▄▄▄aaa??va??va▄a▄va▄??????a▄?????_______________________??va▄a▄va▄??????a▄?????_______________________█a?█████cons███\▄???▄██▄?▌████?????███▌▄▄????██??███?▌█aaa??????va?▄▄▄▄?????????▄????▄?█va\SanicCRUD-view?/-▌去吧去吧!??/?????????????????????????????????█?██?
