CMDB之Django 数据库ORM操作
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,CMDB实现数据展示功能部分代码。views.pydef asset(request): asset = Asset.objects.all() return render_to_resp
千家信息网最后更新 2026年11月01日CMDB之Django 数据库ORM操作
CMDB实现数据展示功能部分代码。views.pydef asset(request): asset = Asset.objects.all() return render_to_response("asset.html",{'asset': asset}) models.pyclass Asset(models.Model): ipaddr = models.CharField(max_length=20, verbose_name=u'IP地址', primary_key=True) #需定义primary_key,否则会自动创建id列 hostname = models.CharField(max_length=30, verbose_name=u'主机名') nodes = models.CharField(max_length=20, verbose_name=u'应用节点') applications = models.CharField(max_length=30, verbose_name=u'应用名') group = models.CharField(max_length=20, verbose_name=u'应用组名') memory = models.CharField(max_length=5, verbose_name='内存大小') env = models.CharField(max_length=5, verbose_name='环境变量') flag = models.PositiveSmallIntegerField(verbose_name=u'flag') #def __unicode__(self): # return u'%s,%s,%s,%s,%s,%s,%s,%s' %(self.ipaddr, self.hostname, self.nodes, self.app, self.group, self.memory, self.disk, self.cpu) class Meta: db_table = 'fcenv_copy' #表名,默认为app名+类名 verbose_name = u'主机资产信息' verbose_name_plural = u'主机资产信息管理' asset.html| IP地址 | 机器名 | 节点 | 应用名称 | 组别 | 内存 | 环境变量 | flag | 操作 |
|---|---|---|---|---|---|---|---|---|
| {{ value.ipaddr }} | {{ value.hostname }} | {{ value.nodes }} | {{ value.applications }} | {{ value.group }} | {{ value.memory }} | {{ value.env }} | {{ value.flag }} | 编辑 连接 删除 | {% endfor %}
以下是常用ORM操作:
# models.Tb1.objects.create(c1='xx', c2='oo') 增加一条数据,可以接受字典类型数据 **kwargs
# obj = models.Tb1(c1='xx', c2='oo') # obj.save() # 查 # # models.Tb1.objects.get(id=123) # 获取单条数据,不存在则报错(不建议) # models.Tb1.objects.all() # 获取全部 # models.Tb1.objects.filter(name='seven') # 获取指定条件的数据 # 删 # # models.Tb1.objects.filter(name='seven').delete() # 删除指定条件的数据 # 改 # models.Tb1.objects.filter(name='seven').update(gender='0') # 将指定条件的数据更新,均支持 **kwargs # obj = models.Tb1.objects.get(id=1) # 修改单条数据 # obj.c1 = '111' # obj.save() # 获取个数 # # models.Tb1.objects.filter(name='seven').count() # 大于,小于 # # models.Tb1.objects.filter(id__gt=1) # 获取id大于1的值 # models.Tb1.objects.filter(id__lt=10) # 获取id小于10的值 # models.Tb1.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值 # in # # models.Tb1.objects.filter(id__in=[11, 22, 33]) # 获取id等于11、22、33的数据 # models.Tb1.objects.exclude(id__in=[11, 22, 33]) # not in # contains # # models.Tb1.objects.filter(name__contains="ven") # models.Tb1.objects.filter(name__icontains="ven") # icontains大小写不敏感 # models.Tb1.objects.exclude(name__icontains="ven") # range # # models.Tb1.objects.filter(id__range=[1, 2]) # 范围bettwen and # 其他类似 # # startswith,istartswith, endswith, iendswith, # order by # # models.Tb1.objects.filter(name='seven').order_by('id') # asc # models.Tb1.objects.filter(name='seven').order_by('-id') # desc # limit 、offset # # models.Tb1.objects.all()[10:20] # group by from django.db.models import Count, Min, Max, Sum # models.Tb1.objects.filter(c1=1).values('id').annotate(c=Count('num'))# SELECT "app01_tb1"."id", COUNT("app01_tb1"."num") AS "c" FROM "app01_tb1" WHERE "app01_tb1"."c1" = 1 GROUP BY "app01_tb1"."id"
Many-to-one relationships 多表关联查询。
from django.db import modelsclass Reporter(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=30) email = models.EmailField() def __str__(self): # __unicode__ on Python 2 return "%s %s" % (self.first_name, self.last_name)class Article(models.Model): headline = models.CharField(max_length=100) pub_date = models.DateField() reporter = models.ForeignKey(Reporter, on_delete=models.CASCADE) def __str__(self): # __unicode__ on Python 2 return self.headline class Meta: ordering = ('headline',) >>> r.article_set.filter(headline__startswith='This')]># Find all Articles for any Reporter whose first name is "John".>>> Article.objects.filter(reporter__first_name='John'), ]> 效果图。
附件是样式文件。
附件:http://down.51cto.com/data/2368115
数据
应用
主机
条件
信息
内存
变量
地址
大小
环境
节点
资产
附件
个数
代码
功能
名称
字典
常用
建议
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡
手磨咖啡
互联网金融科技
互联网科技有限公司经营范围
互联网通讯科技
圆梦互联网科技
智能科技公司是互联网公司吗
金融科技 互联网金融
华中科技大学互联网
百单互联网科技有限公司
科技互联网创业计划书
互联网 科技馆
北京大学互联网科技怎么样
互联网科技中介
互联网校园科技培训
和信科技工业互联网
广州有谷有贝互联网科技有限公司
美国五大互联网科技公司市值多少
华人运通互联网科技公司
安徽九吞吴互联网科技有限公司
科技互联网产品
互联网与新科技
致骋互联网科技
朗涯互联网科技
金融科技与互联网金融相同和不同
广州恒生互联网科技有限
互联网科技和信息
乌鲁木齐新华智原互联网科技学校
山东子淼互联网科技有限公司
济南小医互联网科技有限公司招聘