前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[打造自己的监控系统]让Django运行自定义命令

[打造自己的监控系统]让Django运行自定义命令

作者头像
bsbforever
发布2020-08-19 14:57:24
1.1K0
发布2020-08-19 14:57:24
举报
文章被收录于专栏:时悦的学习笔记

前面介绍了如何利用Python搭建一个网站并且介绍了如何在其中执行Oracle命令并在前端显示出来

[打造自己的监控系统] Django新建网站的总结

打造自己的监控系统之执行Oracle命令总结

这节讲述如何运行自定义命令

这个专题主要内容有:

  1. 如何新建自定义命令
  2. 如何使用自定义命令获取Oracle监控指标并写入数据库
  3. 如何将获取到的数据库监控指标在前端显示

开发环境

操作系统:CentOS 7.3 Python版本 :2.7 Django版本: 1.10.5 操作系统用户:oracle


何时用到自定义命令

我们在使用Django的过程中是否有这样的困惑

  • 我们在model中定义的数据表如何才能取出来供我们使用呢
  • 是否可以不用第三方模块呢

这些都可以在自定义命令中得到解决

使用自定义命令的最常用的用途为可以直接使用Django model中定义的数据

就像前面执行Oracle命令中view.py中的语句,可以直接调用而不需要使用额外的第三方模块

def oracle_command(request): result=oraclelist.objects.all().order_by('tnsname') dic={'result':result} return render_to_response('oracle_command.html',dic)

如上图result就是取oraclelist表中的所有数据


何为自定义命令

Django内置提供了一些功能如开启web服务,迁移数据库等命令

我们在mysite目录下运行python manage.py命令会输出Django提供的内置的命令

上面显示出的命令即为内置的命令

而自定义命令如下图

上图圈出来的hello_world即为我们今天介绍的自定义命令


如何建立自定义命令

下面我们来说如何使python manage.py命令识别出我们的自定义命令

根据前面的章节,我们app的路径为 /home/oracle/mysite/monitor

主要分为2步

  1. 我们需要建立两个目录

[oracle@asensvr-oms]mkdir -p /home/oracle/mysite/monitor/management/commands

2. 再在两个目录新建init文件,内容为空

[oracle@asensvr-oms ]$ touch /home/oracle/mysite/monitor/management/__init__.py [oracle@asensvr-oms ]$ touch /home/oracle/mysite/monitor/management/commands/__init__.py

到这里我们已经完成了前置的工作

接下来我们编写一个hello world 程序来测试下

注意:我们所有的自定义命令需要全部在commands目录下

[oracle@asensvr-oms commands]$ vim hello_world.py

from django.core.management.base import BaseCommand from django.contrib.contenttypes.models import ContentType from monitor.models import oraclelist class Command(BaseCommand): def handle(self, *args, **options): print 'hello world'

代码语言:javascript
复制
  • 前面2行为导入需要的模块
  • 第三行为导入model中定义的oraclelist表
  • 下面2行为固定格式,请不要变更
  • 我们的程序写在handle函数下面

运行命令

这时我们就可以用python manage.py命令运行我们的命令了

源代码

源码请查看我的主页

https://github.com/bsbforever/wechat_monitor

好了,这节介绍了如何新建一个简单的自定义命令

下节将介绍如何利用自定义命令获取Oracle数据库指标并保存在MySQL数据库中

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-09-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 宅必备 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档