前面的笔记,从Marshmallow开始就稍微有些跑题,今天记录一下如何使用Flask-SQLAlchemy进行数据查询。 查询 语法糖 在前文中,有定义过一系列的model类,这里一Account类作为示例。 fromappimportapp frommodelimport fromschemaimport frompprintimportpprint fromsqlalchemyimportfunc withapp.app_context(): a_s=AccountSchema() r1=db.session.query(Account).filter(Account.id1).f...

  qdp7fV9qUjiK   2023年12月12日   17   0   0 sqlalchemy逻辑运算符语法糖

聚合操作 聚合操作是指对一组值进行汇总、计算或统计的操作。这些操作通常应用于数据库中的列(字段),并用于生成单个标量值(例如平均值AVG、总和SUM、最大值MAX、最小值MIN、计数COUNT等)。 示例代码 fromappimportapp frommodelimport frompprintimportpprint fromsqlalchemyimportfunc withapp.app_context(): 查询最大值 pprint("查询最大值") pprint("db.session.query(func.max(Profile.age)).scalar()") max_age...

  qdp7fV9qUjiK   2023年12月12日   12   0   0 sqlalchemy

上文末尾引入了flask-restful中资源类Resource,今天这部分就主要写一下具体用法。 Resource类 Flask-Restful的Resource类作为构建API路由的基本单位。Resource类可以用于定义处理请求的方法,并可以与多个HTTP方法(如GET、POST、PUT、DELETE等)关联。 在Flask-Restful中,GET和POST方法是用于处理HTTP请求的两种常见方法。它们的作用和用法如下: GET方法:GET方法用于从服务器检索(或获取)数据。在使用GET方法时,请求的数据会附加在URL之后,并且URL的长度是有限制的。GET请求的数据是可见的,因为...

  qdp7fV9qUjiK   2023年12月08日   17   0   0 flask-restfulORM

前面通过六部分学习笔记,已经初步从数据模型,数据库更新,序列化,反序列化等搭建了一个基本框架,接下来就是真正的实战了。通过flask_restful来实现一些基本数据库读写操作。 首先回顾一下之前的代码 入口 app.py 此部分代码定义了框架入口主程序。指定了数据库连接方式,并使用flask_restful添加了相关的api。 以下代码中import了api.ResourceAccount模块中的ResourceAccount。 使用flask_restful的Api与flask对象进行关联绑定,使用Api的add_resource方法绑定URL与Resource类。 fromflaski...

  qdp7fV9qUjiK   2023年12月07日   14   0   0 flask-restfulORM

前面通过六部分学习笔记,已经初步从数据模型,数据库更新,序列化,反序列化等搭建了一个基本框架,接下来就是真正的实战了。通过flask_restful来实现一些基本数据库读写操作。 首先回顾一下之前的代码 入口 app.py 此部分代码定义了框架入口主程序。指定了数据库连接方式,并使用flask_restful添加了相关的api。 以下代码中import了api.ResourceAccount模块中的ResourceAccount。 使用flask_restful的Api与flask对象进行关联绑定,使用Api的add_resource方法绑定URL与Resource类。 fromflaski...

  qdp7fV9qUjiK   2023年12月07日   18   0   0 flask-restfulORM

前两篇学习笔记中讲了schema字段,验证器等。这篇就是Marshmallow在ORM中用的比较多的dump与load操作。 dumpload Marshmallow提供了两个主要的方法:dump和load。 dump:将Python对象转换为JSON、XML等格式。它将接受一个Python对象作为输入,并返回一个字符串或字节流,表示该对象的序列化表示形式。 load:将JSON、XML等格式的数据转换为Python对象。它将接受一个字符串或字节流作为输入,表示序列化数据,如果有相应的校验器,将会校验数据,并返回相应的Python对象。 其实在上文中都已经有部分代码使用到了dump与loa...

  qdp7fV9qUjiK   2023年12月06日   16   0   0 序列化python数据

在上一篇学习笔记中,定义了各个类之间的关系。本篇笔记就来研究一下,将model类转数据库 一般来说在Flask环境下,使用Flask-Migrate这个扩展,用于简化数据库模型的迁移管理。数据库迁移是在应用开发过程中对数据库模型进行更改的一种方式,以确保数据库结构与应用代码的演变保持同步。 Flask-Migrate安装配置使用 安装 在终端中运行以下命令安装Flask-Migrate: pipinstallFlask-Migrate 配置 在Flask应用中配置Flask-Migrate、在Flask应用的主文件中,导入并配置Flask-Migrate 配置Migrate可以写在Flask主...

  qdp7fV9qUjiK   2023年12月06日   19   0   0 数据库ORMflaskflask-migrate

在前两部分的学习笔记中,讲了model类的建立与表的创建以及通过flask-migrate对数据库进行迁移。本篇继续,开始实际演示对数据进行操作。 以下示例基于Part01中的model类 一对一关系 在model中Account与Profile之间是一对一关系 classAccount(Base): __tablename__="accounts" account_name=db.Column(db.String(50),unique=True,nullable=False) account_email=db.Column(db.String(120),unique=True,nullab...

  qdp7fV9qUjiK   2023年12月06日   15   0   0 一对多多对多数据库ORM

前几部分文档大致描述了如何使用Flask_SQLArchemy对数据进行操作,但是操作起来都是基于对象的,这时候就可以引入Marshmallow进行序列化与反序列化操作。 Marshmallow作用 在Python中,Marshmallow(棉花糖)是一个用于对象序列化(ObjectSerialization)和反序列化(ObjectDeserialization)的库。它主要用于处理数据对象与数据存储或交换格式之间的转换,例如将对象转换为JSON格式以进行网络传输或持久化存储,以及从JSON数据中还原对象。功能包括: 对象序列化(Serialization):Marshmallow可以将复...

  qdp7fV9qUjiK   2023年12月06日   14   0   0 marshmallowORMflask

Nested字段 Nested是字段fields中使用较多的。在Marshmallow中用于表示嵌套关系的字段。它允许在一个Schema中嵌套另一个Schema,以处理复杂的对象关系。一般情况下可以与Model类中的relationship对应使用。 一对一 在model模块中Account与Profile是一对一关系,与之对应的AccountSchema和ProfileSchema使用如下定义嵌套关系字段 profile=fields.Nested('ProfileSchema',exclude=('account',)) 一对多多对多 在model模块中Account与Project是多对...

  qdp7fV9qUjiK   2023年12月06日   10   0   0 flask-marshmallowORM

在ORM中,一对一,一对多,多对多基本上可以满足所有的关系需求。本文将以一个简单的示例来阐述说明这些关系的定义与用法。 示例说明 下面用一下示例来说明 Flask-SQLArchemy中各种关系 AccounProfile账号档案一对一关系 ProjectHost项目主机一对多关系 AccountProject 账号项目多对多关系 Account包含account_nameaccount_email Profile包含fullnamegender  Project包含project_nameproject_webhook Host包含hostnameip ...

在上篇中完成了对报警媒介与动作的配置 在动作配置中,有一项是发送到配置,这个需要配置到用户与报警媒介之间进行绑定。具体操作如下 点击“管理”-》“用户”,点击要操作的用户 再点击“报警媒介”,点击“添加”进行操作 在弹出的对话框上点选类型,选择之前对应配置的报警媒介,并添加。 如果经过上述配置,仍无法再日志中收取到相应的数据信息,可以通过产看问题记录中的动作来查看具体错误原因。 如下图所示,可以查看出究竟是什么原因导致动作失败。

  qdp7fV9qUjiK   2023年11月19日   17   0   0 pythonzabbix

脚本设计功能要点 在经过前两篇从零开始构建报警中心:part01使用python脚本接收zabbix报警信息-1 从零开始构建报警中心:part02使用python脚本接收zabbix报警信息-2的演示后,在本篇要实现一个全功能的脚本,实现的功能主要有以下几项: 接收数据,并进行格式化处理 本地日志记录数据 接收端异常使用钉钉报警通知 zabbix动作消息格式优化 在之前的文档中可以得知,在设定了动作后,报警媒介中的两个宏{ALERT.SUBJECT} {ALERT.MESSAGE}会作为脚本参数传递给脚本。而这两个宏的值,既可以使用动作中默认值,也可以自主设定。 如...

  qdp7fV9qUjiK   2023年11月19日   47   0   0 python脚本json

现在工作上比较常用的IM一般式钉钉企微飞书,其实使用起来都是大同小异的。这里就用钉钉来实现。 使用钉钉发送信息,一般有三种形式 群webhook 工作通知 智能机器人 智能机器人方式,能实现一定的交互功能,但逻辑相对复杂,这里只是需要一个实时的钉钉消息,所以不进行讨论。 添加群webhook 这是一种比较简单的方式,适用于在群里发送消息。 在钉钉群中确保有管理权限,点击群设置 点击机器人 点击添加机器人 选择自定义webhook机器人 设定webhook机器人信息 安全信息是必选项,具体说明可以点击查看说明文档。 一般情况下,发送钉钉信息的服务器IP是固定的,可以使用IP地址(段...

  qdp7fV9qUjiK   2023年11月19日   15   0   0 json钉钉webhook

上篇提到了使用webhook方式发送消息。这个有一定的局限性,只能在群里发。 钉钉还提供了使用工作通知账号发送钉钉消息的方法,可以直接发送消息给统一组织内的指定账号。 实现使用工作通知发送消息需要以下几步 创建企业内部应用 登录开发者后台,创建企业内部应用。 应用类型:选择H5微应用。 开发方式:选择企业自主开发。 获取AppKey和AppSecret 单击基础信息>应用信息,获取应用AppKey和AppSecret。 调用API发送消息 生成token 使用上文中申请的AppKey和AppSecret生成token。 defget_token(): """ 获取token...

  qdp7fV9qUjiK   2023年11月19日   14   0   0 工作通知钉钉

前几部分写的都是围绕着报警中心的一些外围功能。本篇开始描述报警中心的各个功能。 概述 报警中心需要的一些功能模块: 用户管理:用户信息,登录接入,权限等 报警记录:记录报警的各项信息 通知规则:配置报警通知规则 计划任务:设定计划任务,根据通知规则进行通知行为的触发 主机信息:记录报警主机信息,从CMDB中按需同步 项目(分组)信息:记录项目(分组)信息,从CMDB中按需同步 数据统计:各个维度统计记录报警频率数据等 数据库设计 从概述中可梳理出一些需要处理的数据: 用户accounts 报警记录events 主机hosts 项目projects 规则rules 使用Flask-SQ...

  qdp7fV9qUjiK   2023年11月19日   16   0   0 数据Flask-SQLAlchemy

一般来说,对于小规模或者业务较为简单项目,使用zabbix进行监控监控服务器状态,并配置一些报警渠道就可以基本满足需求,但是如果项目分化较多,各个业务间相互独立,对报警时效性要求各不相同的情况下,仅靠原生的zabbix报警是不够的。 针对这种请求其实可以供借鉴的系统有很多,之所以想起写这么报警中心的需求,主要是为了总结一下过往的一些经验。 这个从零开始构建报警中心的系列文档需要以下一些能力储备: zabbix安装配置(监控能力) python3(脚本编写) 了解Flask架构(报警逻辑) mongodb(数据库操作) 钉钉API(通知) 简易结构 流程: 配置zabbix进行监控...

  qdp7fV9qUjiK   2023年11月05日   28   0   0 pythonzabbix

在part00中提到过,zabbix在整个结构中,只起到发起报警,并将信息推送给Python脚本的作用。所以此文的主要目的就是描述如何配置zabbix的报警媒介。 zabbix可以通过配置报警媒介的方式,来自定义的接收报警信息。 查看AlertScriptsPath配置 报警脚本可以是shell、py或者其他各种格式类型的可执行脚本,一般来说,在zabbix的配置中存放脚本的路径配置为告警脚本在Zabbix服务器上执行。这些脚本位于服务器配置文件中定义的目录中AlertScriptsPath 编写demo脚本 这里提供一个简单python3脚本作为示例,其功能是接受所有的参数记录为日志: /...

  qdp7fV9qUjiK   2023年11月05日   24   0   0 python脚本zabbix

Ansible结构 管理节点与 被管理节点通过ssh进行交互通信。需要建立信任关系,让被管理节点信任管理节点。 Ansible依赖 双方需要OpenSSH,Python 管理节点至少Python2.6以上,被管理节点至少Python2.4以上 安装 pip安装 pipinstallansible yum安装 yum安装依赖epel源,需要先安装epel后再安装 yuminstallepel-release yuminstallansible 安装完成后验证版本信息 ansible--version 建立SSH信任关系 创建ssh秘钥对 ssh-keygen-tr...

  qdp7fV9qUjiK   2023年11月02日   22   0   0 Ansible

测试环境如下 确保所有被控制端都与主控端建立了ssh信任关系。 主控端  10.0.40.64 被控端  10.0.0.57 10.0.0.39 Ansible命令格式 ansible[选项]主机列表[-m][-a][-u][-k][-ask_become_pass][-k][-K][-U][-K][-P][-M][-R][-D][-T][-C][-o][-i] 其中: [选项]:Ansible的选项参数,用于控制其行为。 主机列表:要执行任务的远程主机的列表,可以使用IP地址、域名或主机名。 -m:指定要使用的模块。 -a:指定要传递给模块的参数。 -u:指...

  qdp7fV9qUjiK   2023年11月02日   20   0   0 Ansible
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~