zeKe

Zabbix常用SQL操作

zabbix
前言 线上API项目中, 有部分常用Zabbix操作, 采用直接读库方式。 本文章记录出现在项目中的常用SQL操作(主要以3.x版本为例),主要使用Python语言做演示。 Zabbix一些对应关系及常量 # 历史表对应ID ZBX_HISTORY_TABLES = ("history", "history_str", "history_log", "history_uint", "history_text") # 一些主要的常量 ZBX_MAPPING = { "EVENT_SOURCE_TRIGGERS": 0, "EVENT_OBJECT_TRIGGER": 0, "TRIGGER_VALUE_FALSE": 0, "SEC_PER_DAY": 86400, "TRIGGER_VALUE_TRUE": 1, "TRIGGER_VALUE_TRUE": 0 常用基础操作 获取主机ID # hostname 主机名 def get_host_id(self, hostname): sql = """ SELECT hg. Read more...

Django Models查库姿势

django
本文章记录django models使用姿势 datetime时间范围查询 查询今天内的的数据 from datetime import datetime from datetime import time now_datetime = datetime.now() min_datetime = datetime. Read more...

使用Django Rest Framework进行API接口开发

drf
本文章记录使用drf框架进行API接口开发 安装 安装模块 pip install djangorestframework 快速启动项目 # 生成一个名为name的项目 django-admin startproject app # 生成名为api的app django-admin startapp api 引入 settings. Read more...

Logstash处理Nginx中文Post内容乱码

Logstash
本文章记录采集中有中文字符,出现乱码问题的处理. 解决 scripts/nginx_request_body.rb def filter(event) # 设置index日期 event.set('index_day', event.timestamp.time.localtime.strftime('%Y%m%d')) # 切割message message_array = event.get("message").split("||") event.set("host", message_array[1]) ... # request_body字段 request_body = message_array[13] if request_body. Read more...

Openresty开发采坑记录

本文章记录Openresty学习使用过程中碰到的坑. #1 打印日志 初学为了直观显示输出,习惯性使用ngx.say调试. 在一开发跳转需求功能的时候发现: ngx.say会覆盖ngx.req.set_uri(跳转功能)影响最终结果. #2 Redis连接Bad request 为了Redis连接池共用,将Redis连接存储为共享数据. 后续使用断断续续出现Bad request. 查官网后得知真相: 建议不要使用全局lua变量,并发请求可能会出现因资源竞争导致的请求失败. 传送门 Read more...

Vue采坑记录

vue
本文章记录Vue学习使用过程中碰到的坑. #1 router.options.routes addRouter无法动态渲染菜单问题. 原因: 根据Vue官网介绍,该路由信息,在创建后不得更改. 传送门 需求场景: 用户登录时根据权限动态渲染菜单,需要读取后添加路由. 解决方案: 遍历路由表,将路由Push到列表内. // routerList为路由列表 // routerObj为路由对象 for (let i in routerList) { routerObj. Read more...

尝试自己写一个Python缓存装饰器

python
本文记录尝试编写一个简单的缓存装饰器,以学习为目的,实际生产环境建议大家用标准库。 from hashlib import md5 from pickle import dump, load # 用pickle进行数据的读取、写入 def _dkL(f): with open(f,'rb') as file: return load(file) def _dkD(o,f): with open(f, 'wb') as file: return dump(o,file) def cache(ex_time=10, start=0, have_args=True, have_kw=True, cache_path="/tmp/pyCache"): # 判断缓存目录是否存在 if not path. Read more...

Django Rest Framework 分页功能与搜索功能

drf
本文章记录在drf框架中实现分页、搜索功能. 实践 分页器 分页器的实现官网介绍有两种方式: 配置文件配置 继承父类完成自定义分页器 分析分页器源码 自定义分页器主要是继承PageNumberPagination,改写get_paginated_response方法与paginate_queryset方法. > 其中get_paginated_response主要是编写分页器的返回结果. 需求示例: 前端采用iView组件中的分页器,该前端分页器主要接收总页数与当前页数.所以后端需要返回数据,并且返回一个总页数. class MyPagination(PageNumberPagination): # 指定每一页的个数,默认为配置文件里面的PAGE_SIZE page_size = 10 # 可以让前端指定每页个数,默认为空,这里指定page_size去指定显示个数 page_size_query_param = 'page_size' # 可以让前端指定页码数,默认就是page参数去接收 page_query_param = 'page' # 指定返回格式,根据需求返回一个总页数,数据存在results字典里返回 def get_paginated_response(self, data): from collections import OrderedDict return Response( OrderedDict([('count', self. Read more...

Django Rest Framework JWT鉴权实践

drf
本文章记录在drf框架中对JWT鉴权实践过程. 实践 安装djangorestframework-jwt模块 场景1: 修改默认Username作为用户名验证 改成以uid作为用户名 settings.py JWT_PAYLOAD_GET_USERNAME_HANDLER = 'uid' # 修改验证后端 AUTHENTICATION_BACKENDS = [ 'auth. Read more...

关于我

欲目千里,更上一层 关注领域 运维开发 运维监控 容器技术 Elasticsearch 技能 开发语言: Python/Shell/Go/JavaScript/Lua Web框架: Django/Flask/Vue 捐赠 如果你觉得本站对你有帮助,请捐赠以表支持,谢谢~~ Read more...
1 of 1