django对比数据并调用企业微信接口群发
在日常工作中,需要对数据进行对比。一般来说,都是保存在数据库中,所以需要对sql语句非常熟练,常常一条命令都是几十行,表和表之间的关系是非常明显的。在得到异常数据后,需要告知特定的人群。在这里,我决定采用企业微信,为什么不用邮箱来群发呢?原因有很多,首先是安全问题,一般用程序发的邮件会被当做垃圾邮件;其次是人群中对邮箱不是经常看所以不是很方便。
一般来说,很多公司也会有企业微信端的,企业微信的消息可以到微信中更是方便了,同时企业微信也有相应的接口说明,很是方便。下面我将从企业微信创建应用,编写群发消息程序,最后实现在web中的应用。
同样的,我这里还是使用django框架下的web应用,视图就展示了查询列表,对比内容为了方便直接了网页跳转。
目录
- 对比数据并显示视图
- 企业微信创建
- 群发消息
对比数据并显示视图
对比数据我直接采用了数据库比对:
models.py:
from django.db import models
class test_excel_info(models.Model):name = models.CharField('名称',max_length=20)pcnum = models.CharField('电脑编号',max_length=30)cause = models.CharField('理由',max_length=30)class oldinfo(models.Model):name=models.CharField('name',max_length=20)pcnum=models.CharField('pcnum',max_length=30)
views.py
这里显示了对应的视图,创建了查询,删除和对比数据。
def info_show(request):info = models.test_excel_info.objects.all()return render(request,'info_list.html',{'info_list':info})def drop_info(request):drop_id =request.GET.get('id')drop_obj = models.test_excel_info.objects.get(id=drop_id)drop_obj.delete()return redirect('/info/')def compare_sql(request):cursor = connection.cursor()cursor.execute("insert into TestDjan_oldinfo(name,pcnum) values ('kaik','pc112')")return redirect('/info/')
有很多人问我,这里views.py是后端操作,那么如何实现前端交互呢?这里以info_show为例:
可以看到我这里前后端处理得还算好,对于后端的人只要知道接口特性就行,所以如果是一个良好的前后端分离项目,为了系统的维护性,必须让后端开发者写接口文档,否则会比较难受了!
前端的关于操作显示的代码:
views.py中的字典对应关系。
运行结果图:这样编辑和删除也都是页面操作(views.py)了。
企业微信创建
首先在自己手机下载企业微信,为了进行测试,自己先创建一个企业。登录企业微信平台:企业微信
在应用管理创建一个应用。同时记住这里的id和secret,保存下来。
在我的企业可以企业的id,同样需要。
下面就可以编写程序,python调用企业微信接口实现群发信息:接口文档
import requests, sysclass SendWeiXinWork():def __init__(self):self.CORP_ID = "ww" # 企业号的标识self.SECRET = "" # 管理组凭证密钥self.AGENT_ID = '1000002' # 应用IDself.token = self.get_token()def get_token(self):url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"data = {"corpid": self.CORP_ID,"corpsecret": self.SECRET}req = requests.get(url=url, params=data)res = req.json()if res['errmsg'] == 'ok':return res["access_token"]else:return resdef send_message(self, to_user, content):url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % self.tokendata = {#"touser": to_user, # 发送个人就填用户账号"toparty": 1, # 发送组内成员就填部门ID"msgtype": "text","agentid": self.AGENT_ID,"text": {"content": content},"safe": "0"}req = requests.post(url=url, json=data)res = req.json()if res['errmsg'] == 'ok':print("send message succeed")return "send message succeed"else:print("send message error", res)return resif __name__ == '__main__':SendWeiXinWork = SendWeiXinWork()SendWeiXinWork.send_message("2", "test for wechat")
可能会出现某些错误:如果显示代理问题,请关闭代理软件;如果ip是问题,请将自己的ip设置为白名单:选择自己创建的应用。注意不要看自己的ipconfig,因为这是内网ip,使用了NAT转换了,所以你可以先跑一下程序,他会报错会告诉你的ip内容。
群发消息
views.py
def send_sql(request):cursor = connection.cursor()cursor.execute("select a.name from TestDjan_test_excel_info a inner join TestDjan_oldinfo b on a.name=b.name and a.pcnum !=b.pcnum")myre=cursor.fetchall()for i in myre:name = i[0]SendWeiXinWork = testwechat.SendWeiXinWork()SendWeiXinWork.send_message("2","有错误的信息:"+name)return redirect('/info/')
urls.py
path('info/',views.info_show),path('drop_info/',views.drop_info),path('compare_sql/',views.compare_sql),path('send_sql',views.send_sql),
为了方便我直接使用了跳转网页的形式来进行查询对比数据与发送,当然了在对比那块可以实现视图的展示。
这是用户收到的信息:
这是我的数据库测试表内容:
需要对比的表
关键的sql语句:
select a.name from TestDjan_test_excel_info a inner join TestDjan_oldinfo b on a.name=b.name and a.pcnum !=b.pcnum
然后部门的人便可以接到以下的内容了:
django对比数据并调用企业微信接口群发相关推荐
- java调用企业微信接口发送文件功能
java调用企业微信接口发送文件功能 代码 结合几位大佬的代码后实现此功能:感谢大佬让我完成此功能的实现,如有侵权,立刻删除. 借鉴文章地址: java调用企业微信接口发送消息https://blog ...
- python调用企业微信接口
python调用企业微信接口实现关联添加用户 # --*-- coding: utf-8 --*--import json import urllib2coreID = secret = apisec ...
- H5使用JS-SDK调用企业微信接口、调试
企业微信开发者工具文档 企业微信-错误码查找工具 写在前面的注意事项 config注入的是企业的身份与权限 agentConfig注入的是应用的身份与权限 jsapi_ticket是H5应用调用企业微 ...
- java调用企业微信接口---获取考勤数据
Static和new的区别? static : 不需要创建实例可直接使用, 会直到程序关闭才会释放资源,类的一个成员被static修饰后,该成员就属于类的成员了,被所有对象共享. new 对象: 每次 ...
- python企业微信群聊_python调用企业微信接口发送群聊消息代码参考
# Author: sea 2019 import requests import json import time class WebchatUtil: corpid = '必须填写你自己申请的' ...
- Thinkphp6调用企业微信官方php版本接口方法
因为业务需要对接企业微信,准备使用Thinkphp6开发,直接使用企业微信官方接口.原计划在企业微信接口类文件中全部定义命名空间,但是并没有成功(因为文件在嵌套调用,可能是没有全部命名的原因). 1. ...
- 企业微信接口开启收费模式,意在第三方生态健康发展
企业微信官方在5月9日一篇"面向服务商进行收费模式调整的说明",在服务商中一石激起千层浪,引发不少的讨论,此次企业微信官方意在何处,对于服务商与企业用户又会出现什么影响. 首先我们 ...
- vue调用企业微信扫码接口
准备工作 -企业微信授权 见企业微信官方网站:https://developer.work.weixin.qq.com/document/path/90513 前端 test01.vue 1. 引入j ...
- 企业微信api接口调用-企业微信好友收发消息
企业微信api消息接口调用-企业微信好友收发消息 /** * 给企业微信好友发消息 * @author wechat:happybabby110 * @blog http://www.wlkankan ...
最新文章
- withRouter组件
- 上周回顾:赛门铁克失足 微软开源对骂
- linux命令基本格式教程,Linux命令基本格式(详解版)
- 微信小程序 点击按钮 退出
- SCOM 2012知识分享-9:配置警报解决状态
- vs2017 js cordova + dotnet core 开发app
- SpringBoot项目如何进行打包部署
- 存数组元素的个数_HashMap1.8之后为什么要采用数组+链表+红黑树的储存方式?
- java 入门面试题
- Uiautomator入门(初学者用)
- 信息论与编码2 BCH码的构造
- ubuntu20.04安装ROS极简教程 (noetic)
- 海康服务器找不到网卡驱动,驱动技巧:解决设备管理器中找不到网卡的问题
- 微信公众号之免登陆快速入门
- 聊聊H5浏览器实现扫一扫
- 解决服务器内存被pc微信占满,微信占内存的解决方案终于出现了
- 后端线上服务监控与报警方案
- Build A City——Floorplan
- 计算机动漫与游戏制作与影视,中职中专计算机动漫与游戏制作专业系列教材·动画与影视后期制作:After Effects CS4技能应用教程...
- Aaron Swartz:如何提高效率
热门文章
- C语言中fclose函数
- C++——文件指针定位--fseek,ftell
- rust php 扩展,在PHP程序中使用Rust扩展的方法_PHP
- 喜报丨云和恩墨MogDB数据库与华为Taishan服务器完成兼容性认证
- IPFS直播最详细解读—FileCoin Demo演示
- UVM:3.4.1 设置打印信息的冗余度阈值
- Golang - [Iris] 日志写入与日志分割
- 2021-06-22Android模拟器
- Allegro按照板框边沿敷铜并进行内缩和外扩
- 【转】Apache Http Server与Tomcat实现负载均衡和集群