crm——stark组件

1. stark介绍

在实际业务中,我们常常会面对对多张表的增删改查功能的开发需求,虽然django提供了强大的ORM,但我们还是需要设计一系列重复的逻辑代码。在此背景下,开发一个高扩展性且易用的组件来解决这一需求变得不可或缺。
因此我们自定义了 stark 组件,来满足快速完成对多张表的增删改查与自定义复杂操作。

2. 单例模式

我们这么写: zhaosen.py
class AdminSite(object):
pass

obj1 = AdminSite()

调用实例:
import zhaosen
zhaosen.obj1
zhaosen.obj1


3. 路由系统
- include
- namespace

- 补充:
项目/urls.py
from django.conf.urls import url,include
from django.contrib import admin
from app01 import views

 

urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^rbac/', ([
url(r'^login/', views.login),
url(r'^logout/', views.logout),
url(r'^x1/', ([
url(r'^add/', views.add,name='n1'),
url(r'^change/', views.change,name='n2'),
],None,'xxx')),
],None,'rbac')),
]



app01/views.py
from django.shortcuts import render
from django.shortcuts import HttpResponse
from django.urls import reverse

def login(request):
url1 = reverse('rbac:xxx:n1')
url2 = reverse('rbac:xxx:n2')

print(url1)
print(url2)
return HttpResponse('login')

def logout(request):
return HttpResponse('logout')

def add(request):
return HttpResponse('add')

def change(request):
return HttpResponse('change')


4. 启动后、路由加载前定制一段代码。
a. 创建一个stark app 组件

b. 编写ready方法
from django.apps import AppConfig


class StarkConfig(AppConfig):
name = 'stark'

def ready(self):
from django.utils.module_loading import autodiscover_modules
autodiscover_modules('stark')

程序启动时,会先去每个app中找stark.py文件并加载。

c. 其他app中创建stark.py

d. 程序启东时便会自动加载 stark.py

posted @ 2018-09-28 21:27  YanceDev  阅读(156)  评论(0)    收藏  举报