知识点

编辑本博客

一、stark所涉及的类:

ChangeList:封装列表页面需要的所有数据

StarkConfig:生成URL和视图对应关系,默认配置

AdminSite:保存数据库类和处理该类的对象的对应关系,路由分发

  _registry={}

二、知识点:

inclusion_tag

QueryDict中的urlencode,urllib.parse.urlencode,QueryDict对象默认不可修改,需将_mutable=True

_meta获取app名称和类名(数据库中的表名),_meta.app_label,_meta.model_name

深浅拷贝

生成器

路由分发

- include

- ([],appname,namespace)

辨别函数与方法

Q对象的使用,构造复杂的查询条件

反射

  - 获取models的QuerySet数据

  - 下拉框中的批量操作

面向对象继承

  - app下stark文件中继承StarkConfig,注意self到底是谁

反向生成URL

  reverse(“namespace:xxx”)

分页和搜索保留搜索条件

ModelForm组件

  动态创建类

name='Foo'
country='cn'
detail=lambda self,x:x+1
#在py中,类默认都是通过type来创建
cls=type(name,(object,),{'country':'cn','detail':lambda self,x:x+1})
obj=cls()
View Code

  functools

    - wraps(),保留原函数的元信息(函数名/函数注释等)

    - partial 偏函数为函数默认传参

   钩子函数预留可扩展位置

  request.GET

    - QueryDict对象操作

params=request.GET.copy()
params._mutable=True
params['k1']='v1'
params.setlist('k2',[11,22,33])
View Code

    - get()

    - getlist()

    - _mutable=True

    - copy()

    - urlencode()

  mark_safe

  单例模式

    - 多个实例对象中共享数据

  多例模式

    - 实例中不共享数据

  获取函数名称

    __name__

  autodiscover_module

  函数手动模拟装饰器

    self.request=request

  order_by排序

三、可迭代对象

三、封装的应用

三、获取FK或M2M对应的数据,rel,remote_field

不同的django版本获取方式可能不一样,没有rel方法就用remote_field方法

 

 

posted @ 2018-09-12 09:16  丫丫625202  阅读(101)  评论(0编辑  收藏  举报