django第九天总结
###day22
- 1.资产变更记录
- 2.后台管理
- 3.传统方式对业务线 增删改查
- 4.提供一个增删改查的组件
###内容回顾:
- 1.cmdb
- 架构:
- 资产采集的部分 client
- api django djangorestframework
- 后台管理
- 2.技术点
- 1.开发封闭原则
- 源码 封闭
- 配置 开放
- 兼容多种模式并且可扩展
- agent subprocess
- ssh paramiko
- salt/ansible
- 采集硬件信息的可插拔式设计
- importlib 导入模块
- 反射
- 2.类的约束
- 继承 + 抛出异常
- 抽象类 + 抽象方法
- 3.错误详情
- traceback.format_exc()
- 4.唯一标识
- 主机名
- 5.requests 发请求
- 6.线程池
- from concurrent.futures import ThreadPoolExecutor
- 7.api校验
- key|时间戳 MD5
- key|时间戳 time
- key只能用一次
- 时间上的判断
- 8.数据加密
- rsa
- 9.api
- CBV djangorestframework
- from rest_framework.views import APIView
- from rest_framework.response import Response
###准备知识
```python
class Base():
def f1():
print('Base f1')
self.f2()
def f2():
print('Base f2')
class Foo(Base):
def f2():
print('Foo f2')
c1 = Foo()
c1.f1()
```
```python
Class Base()
def f1():
print('Base f1')
Class Foo(Base)
def f1():
super().f1()
print('Foo f1')
c1 = Foo()
c1.f1()
```
```python
class Base():
def f1():
print('Base f1')
class Foo(Base):
def f1():
super().f1()
print('Foo f1')
class Bar(Base):
def f1():
super().f1()
print('Bar f1')
class D(Foo,Bar):
pass
d = D()
d.f1()
```
- super 按照继承顺序找当前类之后的类里的方法
###展示:
- 1.普通字段
- obj.filed
- 2.choice ((1,'男'),)
- obj.filed _> 1
- obj.get_字段名_display() 男
- 3.外键
- obj.外键字段 _> 关联的对象 __str__
- obj.外键字段.name
- 4.自定义方法
- 展示多对多
- 加css样式
```python
from django.utils.safestring import mark_safe
def show_s(self):
return mark_safe('<span style="color:red">xxxxxx</span>')
```
###使用stark组件的步骤:
- 1.拷贝stark组件到django项目中并注册
- 注册:
- 'stark.apps.StarkConfig'
- 2.在已经注册的app下创建stark.py文件
- 3.使用stark组件的路由
```python
from django.conf.urls import url,include
from stark.service.stark import site
urlpatterns = [
url(r'^stark/',include(site.urls))
]
```
- 4.在stark.py文件写配置并注册
```python
from stark.service.stark import site,StarkConfig
from repository import models
class BusinessUnitConfig(StarkConfig):
# 展示字段
list_display = ['id','name']
# 模糊搜索
search_list = ['name']
# 排序
order_by = ['name','-id']
site.register(models.BusinessUnit,BusinessUnitConfig)
```