crm项目-stark组件分析
############### stark组件 ################
""" 这个stark组件是非常神奇的 1,独立的一个组件
2,没有model
3,没有views """
############### stark组件 ################
""" stark组件站点类
这个是一个重点类,应该是研究这个组件的起点
做了几件事
1,模仿admin,利用了单例模式,
2,模仿admin,可以对每一个表进行注册
这一步参数就是模型类,视图类,传递过来,
3,模仿admin,可以做第一层的路由分发,利用了django自带的url模块
生成/app/model/,这种格式的url,这是启动程序就生成的, """
############### stark组件 ################
""" stark组件默认处理视图
这个非常重要,是核心 第一,返回列表页面,这是最为复杂的,
1,数据 2,表头 3,表内容 4,查询
5,过滤 6,action 7,分页 8,添加按钮
第二,添加页面
第三,编辑页面
第四,删除页面
这四个页面都保留了定制,可以自己指定模板 处理第二级的url,这才是拼接最终的url
"""
############### stark组件 ################
""" stark组件处理视图
1,每次处理视图都会校验权限,看是否有添加按钮,删除按钮,编辑按钮,
把这个封装起来,每一个视图类都继承这个权限类,
每一个视图类,都继承默认的视图,
所以这个地方用到了多继承的知识, 2,默认视图中每一个小的功能都封装成为一个函数,
在真正的处理视图类继承默认视图之后,重写这些函数,达到定制的功能, """
############### stark组件 ################
""" stark组件,option类
这个类用来处理筛选,
1,指定字段,这种一般就是一对多的字段,或者多对多的字段,
2,可以定制是否支持多选, """
############### stark组件 ################
""" 如何不用stark组件是如何开发的?
1,我需要研究一下博客项目,
然后博客项目和crm项目比较就知道如何开发了, 使用stark组件和使用admin组件开发后台有什么优势?
1,django 的 admin其本意是一个简易的数据生成工具,
主要用于项目初期阶段进行简单的数据管理,比较有局限性
如果业务复杂些,admin可能就没有办法实现了
最大的问题是很不灵活并且是难以定制。
包括页面定制
url扩展,页面扩展
菜单管理,权限管理, Django admin 一般是用来给超级管理员实现一些基础的增删查改的,
不建议给用户使用。但是目前项目中,有部分给用户使用的功能很类似 Django Admin 中的 ModelAdmin ,
也就是把 Model 中某 Field 列出来查看、修改、新增。
若是自己写 View 的话,比较重复,或者自行实现一个 ModelAdmin ?
还是通过定制 Django admin 的 template 来实现较好?
如果比较追求用户体验的话建议自己写, Django Admin 深度定制很麻烦,
自己写,不用自带的 admin ,开发前期可以用用。
给用户做是个巨坑,本来目的就是做个方便开发的后台原型,到后来你得 hack 很多东西,唯一的好处是吃透文档
如果给用户用,千万别用 admin ,现在我正在填坑,还被别人在身边墨迹。因为你写前端交互的 js 已经打了无数个 patch,一团乱糟糟的
问题是,我问到的每个人都持反对意见,他们认为 admin 只限于超级用户,很不灵活并且是难以定制。” —来自 Reddit 的 andybak 2,stark组件集成了bootstrap,更好的定制页面,
扩展url,扩展页面,
所有的功能,菜单,页面,都能他通过stark组件来集成进来,
这才是真正的后台,使用admin就没有这么好扩展,定制, 二者都是这样,开发curd重复工作而且麻烦,所以两者都可以节省curd的时间,专注于业务实现, 对xadmin来说,可能你能读懂他的源代码后,会觉得,嗯,也是不错的 """
############### stark组件 ################
############### stark组件 ################
############### stark组件 ################
############### stark组件 ################
############### stark组件 ################
crm项目-stark组件分析的更多相关文章
- crm项目-stark组件
############### admin基本认识和常用的定制功能 ############### stark组件 对admin的基本认识 1,就是一个app,嵌入到了django里面,你可以 ...
- day 70 crm(7):stark组件调用,以及权限分配
前情提要: 复习: 1: orm !!!!! 2: session 3: django 4: 前端在复习 5: 复习中间件 学习的stark 的组件调用,以及权限的应用 一:权限的概念, 1: ...
- crm 使用stark组件
# Create your models here. from django.db import models class Department(models.Model): "" ...
- day67 crm(4) stark组件的增删改 以及 model_from使用和from组件回顾
前情提要:Django stark 组件开发的 增删改, model_form组件的使用 form组件的回顾 一:list_display_link 创建 功能描述: 使包含的字段能 ...
- crm项目-权限组件
############### 表结构分析 ################ """ 表结构设计: 1,四张表 用户表,userinfo,这个表本身不会被创 ...
- CRM项目之stark组件
. stark也是一个app(用startapp stark创建),目标时把这个做成一个可以拔插的组件 . setting文件下INSTALLED_APPS 路径要配置好(app的注册) . 写好si ...
- CRM项目之stark组件(2)
那么从今天开始呢,我们就要开始设计属于我们自己的admin组件,起个名字就叫stark吧(当然你愿意叫什么都可以). stark组件之四步走 仿照admin组件实现流程,stark组件要实现四件事情: ...
- CRM系统之stark组件流程分析
CRM系统主要通过自定义stark组件来实现的(参照admin系统自定义): STARK组件: 1 admin组件 1 如何使用admin 2 admin源码 3 创建自己的admin组件:stark ...
- crm项目之stark组件前戏(二)
stark组件的设计主要来源于django中admin的功能,在django admin中只需要将模型表进行注册,就可以在页面对该表进行curd的动作,那么django admin是如何做的呢? 在d ...
随机推荐
- POJ 2362:Square 觉得这才算深度搜索
Square Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 21821 Accepted: 7624 Descripti ...
- Python爬虫连载1-urllib.request和chardet包使用方式
一.参考资料 1.<Python网络数据采集>图灵工业出版社 2.<精通Python爬虫框架Scrapy>人民邮电出版社 3.[Scrapy官方教程](http://scrap ...
- dp--P1439 最长公共子序列(LCS)
题目描述 给出1-n的两个排列P1和P2,求它们的最长公共子序列. 输入格式 第一行是一个数n, 接下来两行,每行为n个数,为自然数1-n的一个排列. 输出格式 一个数,即最长公共子序列的长度 找出两 ...
- bootstrap 支持的JavaScript插件
一次性导入: Bootstrap提供了一个单一的文件,这个文件包含了Bootstrap的所有JavaScript插件,即bootstrap.js(压缩版本:bootstrap.min.js). 具体使 ...
- Physicoochemical|CG content|
NCBI存在的问题: 数据用户的增长 软件开发受限 数据分析缺乏 有些传统束缚,仅用底层语言书写 Pangenome Open gene是随菌株数量增大而增大的gene,Closed gene是随菌株 ...
- Idea Spring工程不识别注解
如图所示 Idea工具报出很多注解不识别,开始怀疑是 工具问题,重装Idea.配置lombak都不行,切换分支发现正常,一定是合入代码修改啥了,一行行比对,果然是这行 import org.sprin ...
- [转载]matlab视频读取函数VideoReader
看到以前matlab中读取视频多 使用mmreader等(参考<matlab读取/播放视频的函数>),而现在matlab有一个专门的视频读取类VideoReader完成视频读取的功能. 相 ...
- elk常用知识点
1.让文件每次都从头读取: 当有时候需要重新抽取全日志时候,则需要先删除ES上的索引,然后在logstash上input插件配置sincedb_path => "/dev/null&q ...
- 记录一次URL中有特殊字符怎么处理?
你out了,赶紧换 RestTemplate 吧! 进入正题,直接实战!!! import java.util.HashMap; import java.util.Map; import org.ju ...
- 87.QuerySet API使用详解:create方法
create:创建一条数据,并且保存到数据库中,这个方法相当于先用指定的模型创建一个一个对象,然后再调用这个对象的save方法,示例代码如下: from django.db import connec ...