stark组件数据库管理软件的总结

时间:2022-04-08 06:14:06

1、stark - 总结

用到的知识点:

  1.单例模式

  2.继承

  3.反射

  4.面向对象

  5.modelform

1.注册表
单例模式
 site = StarkSite()
2.生成url
    url(r'^stark/', ([],None,None))
3.数据列表展示
可自定制配置显示:
    list_display = ["__str__"]
list_display_links = []
modelform_class = []
search_fields = []
actions = []
list_filter = []
4.增删改页面 modelform

5.分页
    自定义分页组件 stark/utils/page.py
class Pagination(object):
...
6.search模糊查询
Q查询 or
    search_connection = Q()
...
data_list = self.model.objects.all().filter(search_connection)
7.action批量处理
def patch_init(self, request, queryset):
queryset.update(price=123)
...
patch_init.short_description = "批量初始化"
actions = [patch_init]
queryset = self.model.objects.filter(pk__in=selected_pk)
8.filter过滤
list_filter = ['title','publish', 'authors']
eg:{"publish":["<a href=''>全部</a>","<a href=''>南京出版社</a>","<a href=''>上海出版社</a>"]
"authors":["<a href=''>全部</a>","<a href=''>yuan</a>","<a href=''>egon</a>"]
} Q查询 and
filter_condition = Q()
data_list = self.model.objects.all().filter(search_connection).filter(filter_condition)
9.pop弹出
在一对多和多对多字段后渲染 +
+对应的跳转路径
保存添加记录同时,将原页面的对应的下拉菜单中添加该记录

2、各种小知识点

from django.test import TestCase

# Create your tests here.

#
# class A(object):
#
# x=12
# def __init__(self,m):
# self.z = m
# def xxx(self):
# print(self.x)
# print(self.z)
#
# class B(A):
# x=5
# z = 11
#
# b=B(10)
# b.xxx() #######################################
#
# class Person(object):
# def __init__(self,name):
# self.name = name
#
# alex = Person('alex')
# print(alex.name)
#
# s = 'name'
#
# # print(alex.s) # 用反射
#
# getattr(alex,s)
#
# print(getattr(alex,s)) #######################################
# 没学面向对象之前,都是函数 , # 函数 方法 # class Person(object):
# def __init__(self,name):
# self.name = name
#
# def eat(self): # 方法!
# print(self)
# print('eating...')
#
# # 实例方法
# # egon = Person('egon')
# # egon.eat()
#
# # 函数
# Person.eat('ss') ####################################### # list = [1,2,3]
# list.append(4)
# print(list)
# list.insert(0,100)
# print(list) #######################################
# li = []
# print(len(li))
#
# s = "sss"
# print(isinstance(s,str)) ####################################### # class Person(object):
# def __init__(self,name):
# self.name = name
#
# def __str__(self):
# return self.name
#
# alex = Person('alex')
# # print(alex.name)
# # print(alex)
#
# print(alex.__str__())
# print(str(alex))
#
# print(getattr(alex,'__str__')()) #######################################
# temp = []
# temp.append(1)
# temp.extend([1,2,3])
# print(temp) ####################################### # def foo():
# return
#
# print(foo.__name__) #######################################
# 查询是字段名称
# Book.objects.filter(Q(title='yuan')|Q(price='123')) # Q() 查询放str,
# q = Q()
# q.connection = 'or'
# q.children.append(('title','yuan'))
# q.children.append(('price',123)) ####################################### # ret = self.model.objects.filter(title__startswith='py')
# ret = self.model.objects.filter(price__in=[123, 111, 21, 11])
# ret = self.model.objects.filter(price__range=[10, 100])
# ret = self.model.objects.filter(title__contains='y')
# ret = self.model.objects.filter(title__contains='o')
# ret = self.model.objects.filter(title__icontains='o')
# print(ret)
# return HttpResponse('ok') ####################################### # def foo():
# print('ok')
#
# print(foo.__name__)
# print(type(foo.__name__))
# foo.desc = '123'
# print(foo.desc)
# a = foo()
# a.desc = 12
# print(a.desc) ####################################### # class A(): # str = "http://127.0.0.1:8000/stark/app01/book/?publish=1&author=5" #######################################
# class A(object):
# pass
#
# class B(A):
# pass
#
# b = B()
# print(isinstance(b,A)) # True
# print(isinstance(b,B)) # True test.py

3、目录结构

stark组件数据库管理软件的总结

最后就是这个组件是想要做一个CRM的管理系统,所以在想怎么对表进行操作,怎么进行个性化的自定制等等,这个组件可以服务任何的Django项目,是一个

可插拔式的组件,只需要在项目中粘贴过去并且在settings中配置好就可以使用了,可用性还是非常的高。