基于Django和rest framework的后台框架lucommon(一)
2016-11-20 21:31
429 查看
lucommon介绍:
lucommon快速入门
lucommon架构分析
lucommon用户手册
前言
设计理念
背景
快速入门
安装
演示
架构
基本功能
lucommon不包括任何项目相关的代码,是一个通用的小型框架,这也是lucommon设计目的之一。基于公司版lucommon的基础上,在家又给lucommon新增了不少功能:如权限控制,历史记录,增强型SQL注入类似Atlassian公司的JQL高级搜索等。后续lucommon会在github上继续开发和演化,真心希望能够服务更多的利用Django在做开发的小伙伴。
"Write less, Do more"
不少公司,开发比较大的项目,常采用前后端分离:后端提供数据,如何渲染数据全权交由前端负责。由传统的轻Client重Server到重Client轻Server的转化,将数据的分析提供和数据的显示分离。如同一套接口,网站(web),移动(IOS, Android)调用做出不同的UI,对于前后端开发人员,职责更清晰。
lucommon来源于质量管理中心的后台,而质量管理中心,收集多种平台数据源,呈现和显示数据。技术架构上,我们采用前后端分离,在后台的开发过程中,慢慢诞生出了一个通用的小型框架lucommon。lucommon设计出发点:
基于模型,能自动生成基础的CRUD接口代码:减少重复代码的堆积,提高代码质量,加快开发效率,规范代码编写
提供实用,通用的模块,如日志,接口文档,错误处理,历史记录,权限控制等,不同的项目复用
Django优秀模块集装箱,减少应用层配置,减少学习成本,拿来即用
lucommon基于Django和rest framework进行二次封装,而且充分利用python里很多优质的模块,如django-filters, django-rest-swagger等。关于这些框架或者模块的介绍,请自行查阅相关文档,以便深入学习。lucommon作为切入点,如果你不想花太多精力去阅读各个优质模块的文档,想简单通过lucommon快速开发你的第一个应用,也是我们框架的一个目的。
lucommon是作为一个应用(app)嵌入到你的项目中
为了便于讲解,我们假设你已经创建了一个名字是qc的项目,项目里创建了一个名字叫jira的应用,jira应用里有两个模型(issue和bug),实际项目,请用实际项目,应用以及模型名!
访问应用接口,浏览器访问http://127.0.0.1:8000/qc/jira/bugs
这是rest framework生成的CRUD的页面,你可以通过页面,新增,删除,更新,获取相应模型记录。
到这里,没有写一行逻辑代码,利用lucommon已经能够对我们开发应用的模型进行CRUD调用了。非常简单快速。我会在后面的章节介绍lucommon的强大功能。在继续深入之前,先罗列下lucommon的基本功能,以及来一张lucommon的设计架构图,以便你对lucommon有个全局把握。这些对你深入学习lucommon非常重要。
支持多种查询过滤,排序,分页,内容协商等
权限控制,登录控制,历史记录,SQL注入等
跨域支持,CSRF验证等
生成接口文档
基于rest framework的接口调试页面
缓存控制
日志管理,集中错误处理
接口规范
......
lucommon快速入门
lucommon架构分析
lucommon用户手册
前言
设计理念
背景
快速入门
安装
演示
架构
基本功能
前言
感谢陆金所,感谢两位老大奇哥和冠群,感谢测试架构组所有成员。时间不长,但一定是工作以来,技术上产出和效率最高的半年。先后负责质量管理中心,用户管理工具和团队协作流程管理平台的设计和开发。lucommon起源于项目质量管理中心,慢慢演化和抽象出来的一个基于Django和Rest Framework的二次封装后台框架。随后,应用在测试架构组的其他核心平台,如环境部署管理平台,资源管理平台等。lucommon的需求,来自各大工具平台。lucommon不包括任何项目相关的代码,是一个通用的小型框架,这也是lucommon设计目的之一。基于公司版lucommon的基础上,在家又给lucommon新增了不少功能:如权限控制,历史记录,增强型SQL注入类似Atlassian公司的JQL高级搜索等。后续lucommon会在github上继续开发和演化,真心希望能够服务更多的利用Django在做开发的小伙伴。
设计理念
lucommon:"Write less, Do more"
背景
利用Django进行前后端的开发已经相当便利和简单,MVT模式让开发者更加关注自己的业务逻辑处理,代码结构规范,便于阅读和维护。不少公司,开发比较大的项目,常采用前后端分离:后端提供数据,如何渲染数据全权交由前端负责。由传统的轻Client重Server到重Client轻Server的转化,将数据的分析提供和数据的显示分离。如同一套接口,网站(web),移动(IOS, Android)调用做出不同的UI,对于前后端开发人员,职责更清晰。
lucommon来源于质量管理中心的后台,而质量管理中心,收集多种平台数据源,呈现和显示数据。技术架构上,我们采用前后端分离,在后台的开发过程中,慢慢诞生出了一个通用的小型框架lucommon。lucommon设计出发点:
基于模型,能自动生成基础的CRUD接口代码:减少重复代码的堆积,提高代码质量,加快开发效率,规范代码编写
提供实用,通用的模块,如日志,接口文档,错误处理,历史记录,权限控制等,不同的项目复用
Django优秀模块集装箱,减少应用层配置,减少学习成本,拿来即用
lucommon基于Django和rest framework进行二次封装,而且充分利用python里很多优质的模块,如django-filters, django-rest-swagger等。关于这些框架或者模块的介绍,请自行查阅相关文档,以便深入学习。lucommon作为切入点,如果你不想花太多精力去阅读各个优质模块的文档,想简单通过lucommon快速开发你的第一个应用,也是我们框架的一个目的。
快速入门
lucommon基于Django,需要对Django有基本了解。在开始lucommon开发之旅前,你至少需要知道如何利用Django快速创建一个项目,创建一个应用,知道如何编写一个model,知道配置数据库,并且给相应的model创建数据表(migrate或手动)。是的,如果你觉得这些都没问题,那么请继续往下看,lucommon会让你的应用开发快速高效。lucommon是作为一个应用(app)嵌入到你的项目中
为了便于讲解,我们假设你已经创建了一个名字是qc的项目,项目里创建了一个名字叫jira的应用,jira应用里有两个模型(issue和bug),实际项目,请用实际项目,应用以及模型名!
集成lucommon
# 建议你采用virtualenv创建沙盒环境进行开发,避免python全局环境包冲突等问题 # # 获取lucommon代码 >> git clone git@github.com:hjh188/lucommon.git # 安装lucommon依赖 >> pip install -r lucommon/requirements.txt # Ubuntu环境下,安装全局依赖 >> apt-get install libmysqlclient-dev libxml2-dev libxslt-dev python-dev # 拷贝lucommon到项目,作为项目的一个应用 >> cp -r lucommon YOUR_PROJECT_DIR # 配置项目,编辑项目配置文件settings.py, 在最后面新增下面一行 from lucommon import * # 利用lucommon快速生成模型对应的代码,下面PROJECT_NAME,APP_NAME分别对应qc和jira # 按照命令行提示进行操作,即可生成应用对应模型的CRUD代码 >> python manage.py lucreate --project-name=PROJECT_NAME --app-name=APP_NAME
演示
通过上面简单的步骤,lucommon已经帮你生成好了对应模型的CURD接口,接下来启动应用:# 启动项目 >> python manage.py runserver 8000
访问应用接口,浏览器访问http://127.0.0.1:8000/qc/jira/bugs
这是rest framework生成的CRUD的页面,你可以通过页面,新增,删除,更新,获取相应模型记录。
到这里,没有写一行逻辑代码,利用lucommon已经能够对我们开发应用的模型进行CRUD调用了。非常简单快速。我会在后面的章节介绍lucommon的强大功能。在继续深入之前,先罗列下lucommon的基本功能,以及来一张lucommon的设计架构图,以便你对lucommon有个全局把握。这些对你深入学习lucommon非常重要。
lucommon架构
lucommon基本功能
全量/增量生成模型的CRUD接口代码支持多种查询过滤,排序,分页,内容协商等
权限控制,登录控制,历史记录,SQL注入等
跨域支持,CSRF验证等
生成接口文档
基于rest framework的接口调试页面
缓存控制
日志管理,集中错误处理
接口规范
......
相关文章推荐
- 玩聚网目前也是基于Python的Django框架开发
- 玩聚网目前也是基于Python的Django框架开发
- 4款基于Django框架的开源软件推荐
- 基于jquery后台框架设计(自适应高度,iframe简易版)
- 分享一个基于winForm后台线程处理业务的小程序框架
- 玩聚网目前也是基于Python的Django框架开发
- 基于YIi的三栏frameset框架后台管理页面的实现
- 基于Django框架的敏捷Web开发
- 基于 Django 框架的敏捷 Web 开发
- 基于YIi的三栏frameset框架后台管理页面的实现
- 玩聚网目前也是基于Python的Django框架开发
- 基于Django框架的web设计指南(2)
- 基于 Django 框架 Web 开发
- 基于 Django 框架的敏捷 Web 开发
- [转]基于 Django 框架的敏捷 Web 开发
- 社交游戏框架讨论及其基于Django的方案介绍
- 玩聚网目前也是基于Python的Django框架开发
- 基于Django框架的web设计指南(1)
- 基于SS框架的留言本后台控制器
- 4 款基于Django框架的开源软件推荐