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 ...
随机推荐
- Codeforces 1296E1 - String Coloring (easy version)
题目大意: 给定一段长度为n的字符串s 你需要给每个字符进行涂色,然后相邻的不同色的字符可以进行交换 需要保证涂色后能通过相邻交换把这个字符串按照字典序排序(a~z) 你只有两种颜色可以用来涂 问是否 ...
- Redis的学习之路
应用场景 1.作为缓存使用 (1)原始业务功能设计 秒杀 双十一.618 排队购票 (2)运营平台察觉到突发式高频访问热点 突发式热点新闻 (3)高频复杂的统计数据 在线直播 投票排行榜 2.附加功 ...
- Navicat Premium 12.0.18 安装与激活
Navicat Premium 12.0.18中文版 百度云链接:https://pan.baidu.com/s/1HHOOlQbbWAL-MlI908n4MQ 提取码:k9w6 1.下载好后双击运行 ...
- cors跨域和jsonp劫持漏洞 和 同源策略和跨域请求解决方案
cors跨域和jsonp劫持漏洞: https://www.toutiao.com/a6759064986984645127/ 同源策略和跨域请求解决方案:https://www.jianshu.co ...
- leetcode算法题121-123 --78 --python版本
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序. 实例输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能 ...
- 吴裕雄--天生自然JAVA线程编程笔记:进程与线程
- CodeForces-1100C NN and the Optical Illusion 简单数学
题目链接:https://vjudge.net/problem/CodeForces-1100C 题意: 题目给出外部圆的数目n和内部圆的半径r,要求求出外部圆的半径以满足图片要求. 显然这是一道数学 ...
- 从定时器的选型,到透过源码看XXL-Job(上)
此内容来自一位好朋友的分享,也是当初建议我写博客提升的朋友.内容只做转载,未做修改. 定时任务选型 背景 目前项目定时任务采用Spring Task实现,随着项目需求的迭代,新增的定时任务也越来越多. ...
- 109.大型的csv文件的处理方式
HttpResponse对象将会将响应的数据作为一个整体返回,此时如果数据量非常大的话,长时间浏览器没有得到服务器的响应,就会超过默认的超时时间,返回超时.而StreamingHttpResponse ...
- Python说文解字_看起来有点儿像字典的元组(命名元祖)
1. 需要一个库 namedtuple: 所谓命名元组就是对于元组的每一个元素进行起名,看起来很像访问字典一样. 实例 from collections import namedtuple Stock ...